ZeroTier

出自 ArchWiki

ZeroTier 是一个跨平台且易于使用的虚拟 LAN / Hamachi 替代方案,也可在 Android、iOS、Mac 和 Windows 上使用。根据开发者的说法,GUI 仅在 Mac 和 Windows 上可用。

注意:此提交 以来,ZeroTier 已切换到 商业源代码许可证。ZeroTier 的最后一个 GPLv3 版本是 1.4.2

安装

安装 zerotier-one 软件包。

配置

您需要在 My ZeroTier 上创建一个帐户,并创建一个网络,然后选择您所需的选项,例如支持 IPv4 或 IPv6 或两者都支持。记下新创建的网络 ID,因为您稍后将需要它。

保持您将使用的网络页面处于打开状态,因为您需要授权您连接的每台计算机或设备,并验证它们是否获得了 IP。

要开始,启动 zerotier-one.service,如果希望它在启动时启动,请启用 zerotier-one.service。要找出您的计算机 ID(一个类似于 89e92ceee5 的 10 位十六进制数字),请运行

# zerotier-cli info
200 info 89e92ceee5 1.2.4 ONLINE

其中 89e92ceee5 是地址,1.2.4 是版本,后跟其状态。

接下来,您需要加入一个网络

# zerotier-cli join network_id

网络 ID 是一个 16 位十六进制数字,例如 8056c2e21c000001,您可以在“网络”页面上找到它。

返回 my.zerotier 上的网络页面,向下滚动到“成员”部分,您应该看到所有已加入的地址。要授权每台计算机或设备,请选中最左侧的复选框,并验证是否已为其分配了 IP 地址(这可能需要 10 或 20 秒)。您可能需要运行 dhcpcd 以在本地获取新的 IP 地址。

要验证所有设备是否可以相互看到,您可以使用其关联的 IP ping 每个地址,如下所示

$ ping 192.168.192.91
PING 192.168.192.91 (192.168.192.91) 56(84) bytes of data.
64 bytes from 192.168.192.91: icmp_req=1 ttl=53 time=52.9 ms
...

也可以通过运行以下命令查看连接的对等节点

# zerotier-cli listpeers
200 listpeers <ztaddr> <path> <latency> <version> <role>
200 listpeers 12ac4a1e71 87.98.218.130/30883;12;12;1.00 589 1.2.5 LEAF
200 listpeers 8841408a2e 159.203.2.154/9993;13262;13220;1.00 127 1.1.5 PLANET
200 listpeers 9d219039f3 159.203.97.171/9993;13241;3218;1.00 63 1.1.5 PLANET
...

并通过运行以下命令查看计算机连接到的网络列表

# zerotier-cli listnetworks

手动配置

可以通过在程序的 home 目录 /var/lib/zerotier-one 中创建文件 local.conf 来实现手动配置。这允许您设置各种配置选项,例如将服务限制为特定接口,或强制使用不同的端口。此文件必须是有效的 JSON,因为它可能会被 zerotier-one 重写。下面是一个 local.conf 示例,它停止 zerotier-one 使用 docker 和桥接接口

local.conf
{
    "settings": {
        "interfacePrefixBlacklist": [ "docker", "br-" ]
    }
}

有关可用配置项的更多信息,请访问程序的 GitHub 存储库

故障排除

虚拟网络中的设备无法访问

检查 zerotier-one.service单元状态。如果您看到以下错误,则可能未加载 TUN/TAP 内核模块

ERROR: unable to configure virtual network port: could not open TUN/TAP device: No such file or directory

重新启动应该可以解决问题。