ZeroTier如何组建虚拟局域网:从零开始的完整指南
目录导读
- 什么是ZeroTier?——虚拟局域网的核心概念
- ZeroTier的工作原理:网络虚拟化与P2P穿透
- 注册与安装:零基础搭建环境
- 创建网络与配置:生成唯一的网络ID
- 客户端加入网络:跨设备连接实战
- 高级配置:路由规则、访问控制与权限管理
- 常见问题与故障排查
- 问答环节:解答你最关心的5个问题
什么是ZeroTier?——虚拟局域网的核心概念
ZeroTier是一款基于软件定义网络技术的虚拟局域网工具,它能让分布在不同地理位置的设备(如Windows、Linux、macOS、iOS、Android设备甚至路由器)通过互联网组成一个安全的二层或三层私有网络。它就像给每个设备插上了一根看不见的网线,让它们连接到一个虚拟的交换机上,即使设备在物理上相隔万里。

与传统的VPN(如OpenVPN、WireGuard)不同,ZeroTier不需要中心服务器来转发所有流量,而是采用P2P(点对点)架构,在设备之间直接建立加密通道,这意味着更低的延迟和更高的带宽利用效率,它的核心价值在于:用虚拟化技术替代物理布线,实现设备间的直接通信,特别适合家庭NAS访问、远程办公、游戏联机、物联网设备管理等场景。
ZeroTier的工作原理:网络虚拟化与P2P穿透
ZeroTier的架构包含三个核心组件:
- Moon(根服务器):ZeroTier官方或自建的协调服务器,负责协助设备发现对方并建立连接,不参与实际数据传输。
- Leaf(客户端):安装在你设备上的ZeroTier One程序,负责管理虚拟网络接口和加密隧道。
- 网络控制器(Network Controller):运行在ZeroTier官方云端的服务,管理网络配置、成员授权和路由规则。
连接建立过程:
- 注册:每个设备启动后,会向Moon发送自己的公网IP、端口和网络ID。
- 打洞:Moon帮助两个设备交换地址信息,尝试建立直接的UDP穿透连接(如果NAT允许)。
- 中继:如果P2P穿透失败,数据会通过Moon或你自建的Relay节点进行中转(流量依然加密)。
- 加密通信:一旦连接建立,所有流量使用x25519密钥交换和AES-GCM加密,确保安全性。
这种设计的优势在于:90%以上场景下设备之间是直连,延迟极低;即使无法直连,中继模式也能保证通信畅通。
注册与安装:零基础搭建环境
1 注册ZeroTier账户
访问ZeroTier官网(my.zerotier.com),点击“Sign Up”使用邮箱注册,注册后进入控制台,这是你管理所有虚拟网络的地方。
2 安装客户端客户端
根据你的设备类型下载对应客户端(注意:不要从非官方渠道下载):
- Windows:下载后双击安装,安装后服务会自动启动。
- macOS:安装后需在“系统偏好设置→安全性与隐私”中允许启用。
- Linux(以Ubuntu为例):
curl -s https://install.zerotier.com | sudo bash sudo zerotier-cli status # 检查服务状态
- Android/iOS:直接在应用商店搜索“ZeroTier One”安装。
安装完成后,你会在系统托盘中看到ZeroTier图标,右键点击选择“Join Network”即可开始加入网络。
创建网络与配置:生成唯一的网络ID
登录ZeroTier控制台,点击“Create Network”按钮,系统会生成一个16位字符的网络ID(8056c2e21c000001),记住这个ID,它是你所有设备加入网络的钥匙。
网络基础设置
进入网络详情页,你会看到以下关键选项:
- Name:给网络起个名字(如“家庭局域网”)。
- Access Control(访问控制):
- Certificate(证书模式):默认模式,允许你手动授权设备。
- Private(私有模式):所有设备需管理员审批(推荐)。
- IPv4 Auto-Assign(自动分配IP):启用后,ZeroTier会为每台设备分配一个虚拟IP(如
147.20.1)。 - Allow Managed:必须勾选,客户端才能获得IP。
重要: 建议开启“Private”模式,防止陌生设备加入,在“Members”页面可以查看所有连接的设备,并为其勾选“Authorized”来允许通信。
客户端加入网络:跨设备连接实战
1 加入网络
在每台设备的ZeroTier客户端中,输入网络ID并点击“Join”。
- Windows/macOS:在托盘图标右键→“Join New Network”→输入ID。
- Linux命令行:
sudo zerotier-cli join 8056c2e21c000001 sudo zerotier-cli listnetworks # 查看是否成功获取IP
2 授权设备
回到控制台“Members”页面,你会看到新加入的设备,勾选其后面的“Authorized”复选框,然后它会自动获得虚拟IP(如 147.20.2)。
3 测试连通性
在两台设备上互相ping对方的虚拟IP:
ping 10.147.20.2
如果能够ping通,说明虚拟局域网已经成功组建,如果需要访问设备上的服务(如SSH、远程桌面、文件共享),直接使用虚拟IP访问即可,就像它们在同一台路由器下一样。
高级配置:路由规则、访问控制与权限管理
1 启用桥接模式
如果你希望虚拟局域网内的设备能够访问本地局域网(如连接打印机或NAS),需要启用桥接:
- 在网络控制台“Advanced”选项中找到“Bridging”,启用“Allow Ethernet Bridging”。
- 在被桥接的设备(作为网关)上,手动配置路由规则(Linux需开启IP转发)。
2 自建Moon节点
当使用官方Moon延迟太高时,可以自建Moon服务器:
- 在服务器上安装ZeroTier,运行
sudo zerotier-idtool initmoon /var/lib/zerotier-one/identity.public >> moon.json。 - 修改moon.json中的“stableEndpoints”为你的公网IP。
- 运行
sudo zerotier-idtool genmoon moon.json生成Moon文件,放置到/var/lib/zerotier-one/moons.d/。 - 在客户端用
sudo zerotier-cli orbit <moon-id>连接。
3 流量规则管理
你可以为不同设备设置访问权限(类似防火墙):
- Flow Rules(流规则):使用类iptables语法,比如禁止某台设备访问其他设备的特定端口。
- Capabilities(能力):限制设备是否可以转发流量或加入其他网络。
常见问题与故障排查
Q:设备加入网络后获取不到IP?
- 确保网络开启了IPv4自动分配。
- 检查设备是否已授权(Authorized)。
- 尝试重启ZeroTier服务:
sudo systemctl restart zerotier-one。
Q:ping不通其他设备?
- 检查防火墙是否放行了UDP端口9993(ZeroTier默认端口)。
- 确认两台设备的虚拟IP是否在同一子网(如
147.20.x)。 - 在Windows上,禁用“防病毒软件”的防火墙模块临时测试。
Q:延迟高且偶尔断流?
- 可能是官方Moon节点距离较远,建议自建Moon节点。
- 尝试修改客户端配置文件
/var/lib/zerotier-one/local.conf,添加{"portMappingEnabled": false}关闭端口映射探索。
问答环节:解答你最关心的5个问题
Q1:ZeroTier是免费的吗?有流量限制吗? A:个人用户免费版支持最多25台设备,无流量限制,企业版提供更多的管理功能和优先技术支持,但自建Moon节点后,免费版完全够用。
Q2:ZeroTier和TeamViewer、AnyDesk这类远程控制软件有什么区别? A:TeamViewer等需要依赖中心服务器中转,且侧重于远程桌面,ZeroTier是虚拟局域网,建立后你可以使用任何标准协议(SSH、RDP、HTTP)直接访问设备,而且连接后不消耗第三方带宽。
Q3:我能用ZeroTier来玩游戏联机吗?我的世界》开服。
A:完全可以,将服务器和玩家的设备加入同一个ZeroTier网络,让服务器监听虚拟IP(如 147.20.5:25565),玩家直接连接这个地址即可,注意需要关闭防火墙并确保P2P直连成功。
Q4:如果我的设备重启了,ZeroTier会自动连接吗? A:会,ZeroTier服务会设置为开机自启,系统启动后自动加入已授权的网络,并获取之前分配的虚拟IP(静态IP需在控制台指定)。
Q5:我有一台没有公网IP的树莓派,能用ZeroTier从外部访问吗?
A:可以,在树莓派上安装ZeroTier并加入你的网络,确保网络ID和授权正确,然后你在外部设备(如手机)上也安装并加入同一网络,用虚拟IP(如 147.20.10)访问树莓派的服务(如SSH、HTTP),这是ZeroTier最典型的用途之一——穿透内网访问NAS或智能家居。
通过以上步骤,你应该已经掌握了用ZeroTier组建虚拟局域网的全流程,从概念理解到实战部署,再到问题排查,这份指南覆盖了90%用户会遇到的场景,如果你在操作中遇到特殊问题,建议查阅ZeroTier官方社区或GitHub issues,那里有完善的文档和活跃的开发者支持。所有设备加入同一网络ID且获得授权后,它们就在逻辑上处于同一个局域网内了——去连接那些原本无法互通的设备吧!