Zerotier 异地组网实战:从概念到跨设备互访
1. Zerotier 是什么为什么你需要它第一次听说 Zerotier 时我也是一头雾水。作为一个常年折腾内网穿透的老手我早就受够了传统方案的种种限制。比如用 frp 做内网穿透每次传大文件都要经过第三方服务器中转速度慢不说还经常因为流量过大被服务商限速。直到发现了 Zerotier我才意识到原来异地组网可以这么简单高效。简单来说Zerotier 就是一个能让你在世界各地的设备组成一个虚拟局域网的软件。想象一下你在北京的笔记本、上海的 NAS、广州的树莓派都能像在同一个路由器下那样直接互访。最神奇的是它默认会尝试建立设备间的点对点直连P2P只有在直连失败时才会走官方服务器中转。我实测下来80%的情况下都能成功建立直连传输速度比传统方案快3-5倍。它的核心优势在于零配置不需要购买服务器不需要配置端口转发跨平台支持 Windows、macOS、Linux 甚至 OpenWRT 路由器安全性采用端到端加密比传统 VPN 更安全免费个人使用完全免费100个设备以内毫无压力2. Zerotier 核心概念详解2.1 网络架构的宇宙观Zerotier 用了一套很形象的宇宙模型来描述它的网络架构Earth地球这是 Zerotier 的根服务器集群由官方维护。你可以理解为互联网的主干道所有设备最初都要通过它来互相发现。Network网络相当于一个虚拟的局域网。每个 Network 都有一个唯一的 16位 Network ID比如 abcd1234efgh5678。我通常会为不同用途创建多个 Network比如把智能家居设备和工作电脑分开管理。Planet行星官方的中继服务器。当两个设备无法直接 P2P 连接时比如都在 NAT 后面就会通过这些节点中转。全球有多个 Planet 节点但确实没有国内节点这也是为什么有时候连接会慢。Moon月球这个设计特别巧妙相当于私有化的 Planet。我在阿里云上部署了一个 Moon 节点后国内设备间的连接速度直接从 200ms 降到了 20ms。搭建方法后面会详细说。Leaf叶子就是普通的客户端设备。你的电脑、手机、服务器加入网络后都成为 Leaf。2.2 网络类型与权限控制Zerotier 的网络分为两种类型Public Network任何人都可以加入适合开源项目协作等场景Private Network推荐需要管理员手动授权设备在实际使用中我强烈建议选择 Private Network。创建网络后记得在 Settings 里勾选Enable Broadcast这样设备间才能互相发现。另外有个小技巧在 Advanced 设置里可以自定义 IP 分配范围我一般用 172.27.0.0/16避免和本地网络冲突。3. 实战部署从零搭建跨地域网络3.1 客户端安装全攻略Windows/macOS 直接官网下载安装包安装后任务栏会出现 Zerotier 图标。右键点击Join Network输入你的 Network ID 即可。Linux 我最推荐用 Docker 部署一条命令搞定docker run --name zt \ --device/dev/net/tun \ --nethost \ --cap-addNET_ADMIN \ --cap-addSYS_ADMIN \ -v /var/lib/zerotier-one:/var/lib/zerotier-one \ -d zerotier/zerotier然后进入容器执行docker exec -it zt zerotier-cli join [你的Network ID]路由器OpenWRT 在软件包管理里搜索安装 zerotier然后在 /etc/config/zerotier 里配置config zerotier sample_config option enabled 1 list join [你的Network ID]重启服务后整个局域网设备都能接入虚拟网络了。3.2 网络配置与设备授权登录 Zerotier Central 官网建议用微软账号注册在 Networks 页面可以看到等待授权的设备。每个设备都有唯一的 Node ID点击前面的复选框就能授权。有个实用技巧勾选Allow Ethernet Bridging后可以实现真正的二层网络互通。我在家就用这个功能让公司的电脑直接访问家里的智能家居设备。3.3 测试网络连通性授权完成后设备会获得一个虚拟 IP通常是 172.xx.xx.xx。试试互相 ping# 在设备A上 ping 172.27.34.56 # 在设备B上 ping 172.27.78.90如果延迟在 50ms 以内说明走的是 P2P 直连如果超过 200ms可能是通过 Planet 中转。4. 高级技巧与性能优化4.1 自建 Moon 节点提升速度由于官方没有国内节点两个国内设备可能要先绕道国外才能建立连接。解决方法是在国内云服务器上搭建 Moon在云服务器上安装 Zerotier生成 Moon 配置文件cd /var/lib/zerotier-one zerotier-idtool initmoon identity.public moon.json修改 moon.json 里的 stableEndpoints 添加服务器公网IP编译配置文件zerotier-idtool genmoon moon.json在其他客户端上添加这个 Moonzerotier-cli orbit [Moon的ID] [Moon的ID]实测下来加入 Moon 后连接建立时间从 5-10秒缩短到 1秒内。4.2 跨局域网访问方案默认情况下Zerotier 只能访问直接连接的设备。如果想通过设备A访问它所在局域网的其它设备比如打印机需要在 Zerotier Central 的 Advanced 设置里添加路由DestinationVia192.168.1.0/24172.27.34.56其中 192.168.1.0/24 是设备A的本地局域网段172.27.34.56 是设备A的 Zerotier IP。4.3 安全加固建议虽然 Zerotier 本身很安全但还是建议定期在 Settings 里刷新 Network Key为不同用途创建多个 Network禁用不活跃的设备授权在防火墙里限制 Zerotier 端口默认 9993的访问5. 常见问题排查问题1设备显示在线但 ping 不通检查双方防火墙是否放行了 ICMP在 Zerotier Central 检查是否勾选了 Allow Ethernet Bridging尝试用 telnet 测试具体端口问题2Docker 容器无法连接确保启动时加了 --nethost 参数检查 /dev/net/tun 设备权限在宿主机执行echo 1 /proc/sys/net/ipv4/ip_forward问题3移动网络下连接不稳定尝试在 4G/5G 和 WiFi 间切换检查手机是否开启了省电模式会限制后台流量考虑使用 Moon 节点改善连接质量记得第一次成功连通的场景我在咖啡馆用笔记本直接访问了家里 NAS 上的电影速度跑满了咖啡馆的上行带宽那种感觉就像变魔术一样。现在我的所有设备都接入了 Zerotier连手机都能直接 ssh 到内网服务器。要说缺点可能就是太方便了容易让人产生所有设备都在身边的错觉有一次差点在公共场所误操作了家里的智能门锁...
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2419193.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!