异地组网工具 Zerotier

介绍

要想远程访问没有公网IP的主机,第三方软件速度慢还收费,而 Zerotier 则提供了一种简单、方便的解决方案。
其通过在每个主机上安装 Zerotier 客户端,将这些主机连接到一个 Zerotier 网络中。
每个主机在 Zerotier 网络中都有一个唯一的 IP 地址,通过这个 IP 地址,就可以实现远程访问。
与传统 VPN 等方案不同的是,Zerotier 不需要配置复杂的路由表,也不需要在每个主机上配置静态路由。
两个客户端相连时,会首先尝试直接连接,失败后再尝试通过 Moon 节点连接。

安装

  • 官网注册账号+创建网络
  • 登录主机,安装 Zerotier 客户端
    Windows 直接下载安装包,Linux 执行脚本
    curl -s https://install.zerotier.com | sudo bash
  • 加入网络 sudo zerotier-cli join <网络ID>
  • 进官网授权网络,获得客户端局域网IP地址
  • 各局域网之间可以直接访问

代理加速

官方根服务器都在海外,国内用户连接延迟很高。自建一个位于国内云服务器(VPS)上的 Moon 作为中转站,可以极大改善国内节点的连接状况。

  • 安装Zerotier并加入网络
  • 官网授权Moon节点,选择不分配ip地址
  • Moon节点执行脚本
    cd /var/lib/zerotier-one
    sudo zerotier-idtool initmoon identity.public > moon.json
  • 编辑 moon.json,修改地址,节点放行端口
    "stableEndpoints": [ "123.123.123.123/9993" ]
  • 生成最终的 Moon 配置文件
    # 生成配置文件
    sudo zerotier-idtool genmoon moon.json
    sudo mkdir -p /var/lib/zerotier-one/moons.d
    # 000000xxxxxx 为 Moon 节点的 ID,第一行命令生成的文件
    sudo cp 000000xxxxxx.moon /var/lib/zerotier-one/moons.d/
    # 重启服务
    sudo systemctl restart zerotier-one
    # 开机自启
    sudo systemctl enable zerotier-one
  • 客户端添加Moon节点,<Moon节点ID> 为 10位16进制的数字,是唯一标识
    sudo zerotier-cli orbit <moon-id> <moon-id>

常用命令

# 查看网络信息
zerotier-cli info
# 列出所有节点
zerotier-cli listpeers
# 列出所有 Moon 节点
zerotier-cli listmoons
# 加入网络
zerotier-cli join <网络ID>
# 离开网络
zerotier-cli leave <网络ID>
# 加入Moon
zerotier-cli orbit <MoonID> <MoonID>
# 离开Moon
zerotier-cli deorbit <MoonID>