这个项目能做什么

Nebula是Slack Technologies开发的开源覆盖网络工具。它在Noise协议框架之上构建了一个相互认证的点对点软件定义网络,使计算机无论身处何地或由哪个云提供商托管,都能直接连接。 README中描述的关键能力: - 可扩展性:设计用于连接从几台机器到数万台主机。 - 可移植性:支持Linux(64/32位、ARM等)、Windows、macOS、FreeBSD、iOS和Android。提供Arch、Fedora、Debian、Alpine、Homebrew和Docker的发行包。 - 安全模型:证书断言节点的IP地址、名称以及用户定义组的成员资格。默认加密使用ECDH密钥交换和AES-256-GCM;默认曲线为Curve25519,可选NIST P256和FIPS 140-3构建模式。 - 发现:具有可路由IP的轻量级“灯塔”节点让对等方相互发现,可选使用UDP打洞来穿越NAT和防火墙。 - 流量控制:用户定义的组实现与云安全组风格类似的、与提供商无关的防火墙规则。 入门涉及使用nebula-cert生成证书颁发机构,为带有IP和组的主机签名证书,编写每台主机的配置文件,并运行nebula二进制文件。README警告说,CA私钥是最敏感的文件,不得复制到各个节点,并指出CA默认一年后过期。 Nebula可以使用Go从源代码构建,使用make目标针对所有平台或特定平台。该项目由Slack维护,并通过Defined Networking为不希望运行自己的PKI和灯塔的用户提供托管选项。