
ZeroTier 虚拟组网指南三步让异地设备 P2P 直连不再需要公网 IP【免费下载链接】ZeroTierOneA Smart Ethernet Switch for Earth项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne公司内网要连家里的 NAS两台机器都在 NAT 后面都没有公网 IP——按传统做法这事基本走到头。ZeroTier One 是一个开源的虚拟组网客户端它用 P2P 直连技术把不同地点的设备叠到同一个虚拟以太网交换机上接进来就能互相 ping 通就像插在同一个局域网的交换机里。它替你干了什么NAT 自动打洞、zt0 虚拟网卡与端到端加密它替你做了四件事你只需要提供一个 16 位网络 ID身份首次启动替你生成唯一的 10 位节点地址和 ECC-256 密钥对连通自动做 NAT 穿透P2P 直连成功就走直连直连不成才降级走中继网卡把网络呈现为系统里的本地 zt0 接口现有软件不用改一行配置加密所有流量端到端加密密钥只在你手里整条链路用白话讲节点启动时读取本地身份向网络控制器报到控制器把成员名单和访问控制规则下发给每个节点节点之间再用 UDP 互相试探、建加密通道之后以太网帧加密后经这条通道直发虚拟网卡把它注入你的系统。核心逻辑在仓库的 node/ 目录。 三步跑起来启动 zerotier-one 加入第一个网络的完整步骤从零到有可用 zt0 接口五条命令sudo apt install zerotier-one—— 装好服务包其他系统装官方包同时配好守护进程单元sudo systemctl start zerotier-one—— 启动守护进程首次启动会生成节点身份弱机器因抗 DDoS 工作量证明要等十几秒属正常现象sudo zerotier-cli listnetworks—— 确认服务活着列表为空很正常你还没加入任何网络sudo zerotier-cli join 9xxxxxxx…—— 用 16 位网络 ID 加入本地 zt0 接口随之拉起并自动拿到 IPip addr show zt0—— 看到分配的地址再 ping 同网成员通说明直连已建立不经 systemd、手动拉起守护进程时用sudo zerotier-one -d自定义端口和工作目录写成sudo zerotier-one -d -p12345 /custom/dir。最常用参数速查参数作用-dfork 到后台以守护进程方式运行-pport改绑主服务端口默认 9993本地 JSON API 就开在这个端口-U允许非特权用户运行专为只跑网络控制器的场景工作目录结尾参数默认 Linux 上是 /var/lib/zerotier-one-i/-q以 zerotier-idtool / zerotier-cli 身份运行同一二进制工作目录文件清单identity.secret 备份与节点迁移指南工作目录里的文件平时不用翻只在四个时机才需要碰细节可对照 doc/zerotier-one.8.md首次启动时生成identity.secret—— 完整身份含 10 位地址和私钥丢了这台机器的 ZeroTier 地址就换了各网络的成员白名单都得重配identity.public—— 地址加公钥给别人验证你用的丢了无妨authtoken.secret—— 本地 JSON API 的访问令牌丢了 API 调不动重启会自动生成新的zerotier-one.port—— 记录当前端口重启重建日常运维会看networks.d/—— 已加入网络的配置缓存touch一个空的网络ID.conf就能预配置开机自动加入iddb.d/—— 60 天内见过的对端公钥缓存可删重建后重连会变慢迁移节点才动把identity.secret拷到新机器即完成节点搬家devicemap记住 ztN 接口号与网络的映射保证重启后名字不飘开了控制器才有controller.db是 SQLite3 数据库controller.db.backup每 5 分钟滚动备份备份就拷后者它才是可安全拷贝的那份authtoken.secret 权限管理ZeroTier 安全三原则如果只记三件事identity.secret 当密码对待—— 它含私钥拿到的人能在任何网络里冒充你的设备。反例图省事把它传到群聊或网盘同步。工作目录放持久化存储并定期备份—— 别指向会被清理的临时目录。反例拿 /tmp 当工作目录重启后地址全丢、网络里出现新设备。API 和控制器不暴露—— JSON API 只监听 127.0.0.1控制器单独实例部署。反例生产控制器和普通节点混跑9993 端口对公网开放。其余细节收紧 authtoken.secret 读权限、同一份 identity 别同时拷给多台机器都归同一原则泄露密钥的文件一旦外流网络等于裸奔。 多实例与预配置网络进阶玩法和踩坑提示场景同机多实例做法-p换端口加独立工作目录但单个实例本就能加入任意多个网络一般用不上场景批量部署节点做法在 networks.d/ 预置空网络ID.conf实现开机自动加入成员很多时按业务分区拆网别全塞进一个大网场景首次启动卡在生成身份做法弱性能设备上抗 DDoS 证明要十秒以上只会发生一次别反复重启场景退出不用的网络做法zerotier-cli leave 网络ID同时清掉 networks.d/ 里的对应缓存场景跑专用控制器做法-U降权运行独立 controller.db 定期备份 backup 文件别和节点混部署回到开头那个痛点NAT 后面没公网 IP以前只能打洞失败、转发端口二选一现在多装一个守护进程就够了。下一步建议挑一台最常要连的机器加入同一个网络用zerotier-cli peers确认链路状态后再把它纳入日常使用。【免费下载链接】ZeroTierOneA Smart Ethernet Switch for Earth项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTierOne创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考