ZeroTier 内网穿透技术超详细部署与配置指南
一、准备工作
1. 环境要求
-
操作系统:支持 Linux、Windows、macOS、iOS/Android 及嵌入式系统(如树莓派)。
-
网络条件:设备需能访问互联网(即使处于 NAT 后)。
-
账号注册:访问 ZeroTier 官网 注册账号(免费版支持 100 台设备)。
2. 安装 ZeroTier 客户端
- Linux(Debian/Ubuntu)
curl -s https://install.zerotier.com | sudo bash
sudo systemctl enable --now zerotier-one
-
Windows/macOS
◦ 从 ZeroTier 下载页 获取安装包,安装后启动服务。 -
树莓派(Raspberry Pi)
curl -s https://install.zerotier.com | sudo bash
sudo zerotier-cli join <NetworkID>
二、基础部署流程
1. 创建虚拟网络
- 登录 ZeroTier 控制台,点击 Create a Network,记录生成的 16 位 Network ID(如
a0cbf4b62a000000
)。
2. 设备加入网络
- 命令行加入(Linux/树莓派)
sudo zerotier-cli join <NetworkID>
- GUI 加入(Windows/macOS)
◦ 右键任务栏图标 → Join Network → 输入 Network ID。
3. 设备授权与 IP 分配
-
在 ZeroTier 控制台的 Members 标签中,勾选新设备的 Auth? 列以授权。
-
手动分配 IP:在 Managed IPs 栏填写静态 IP(如
192.168.192.100
)。
三、网络配置与高级功能
1. IP 地址分配策略
-
自动分配:默认使用
192.168.192.0/24
网段。 -
自定义网段:在控制台的 IPv4 Auto-Assign 中设置(如
10.144.0.0/16
)。
2. 流量规则引擎(JSON 规则)
- 示例规则:仅允许设备间通信 80/443 端口。
{
"rules": [
{"type": "accept", "not": true, "port": 80},
{"type": "accept", "not": true, "port": 443},
{"type": "drop"}
]
}
3. 动态路由配置
- 添加静态路由:在控制台的 Routes 中添加目标子网和网关(如
10.0.1.0/24 via 192.168.192.1
)。
四、自建 Moon 中继服务器(提升穿透成功率)
1. Moon 服务器部署
-
安装 ZeroTier:同客户端安装步骤。
-
生成 Moon 配置文件:
cd /var/lib/zerotier-one
zerotier-idtool initmoon identity.public > moon.json
-
修改配置文件:在
moon.json
中指定公网 IP 和端口。 -
生成 Moon 节点文件:
zerotier-idtool genmoon moon.json
- 部署 Moon:将生成的
000000xxxx.moon
文件复制到客户端的moons.d
目录。
2. 客户端连接 Moon
- 命令行验证:
zerotier-cli listpeers
- 输出中应显示 Moon 服务器的公网 IP 和角色为 MOON。
五、典型应用场景配置
1. 远程办公访问内网 NAS
- 步骤:
- 内网 NAS 加入 ZeroTier 网络并分配静态 IP(如
192.168.192.10
)。 - 员工设备加入同一网络,通过
smb://192.168.192.10
直连访问。
- 内网 NAS 加入 ZeroTier 网络并分配静态 IP(如
2. 混合云组网(AWS + 本地数据中心)
- 配置:
- 在 AWS EC2 和本地服务器安装 ZeroTier 客户端。
- 在控制台设置路由规则:
10.0.0.0/16 via 192.168.192.5
(AWS 子网通过云服务器互通)。
3. IoT 设备全球管理
- 方案:
- 设备预装 ZeroTier 客户端并加入网络。
- 通过 API 动态授权新设备(需企业版)。
六、故障排除与优化
1. NAT 穿透失败排查
- 检查直连状态:
zerotier-cli listpeers
- 结果:若节点间显示 DIRECT 则为直连成功,显示 RELAY 需检查防火墙或部署 Moon。
2. 延迟优化
-
启用 Moon 中继:优先使用地理位置近的 Moon 服务器。
-
调整 MTU:在客户端配置文件中添加
defaultPhysicalMTU=1400
避免分片。
3. 日志分析
- 查看实时日志(Linux):
journalctl -u zerotier-one -f
七、安全加固建议
1. 启用多因素认证(MFA)
- 在 ZeroTier 控制台的 Settings 中绑定 Google Authenticator。
2. 流量加密强化
- 禁用旧协议:在客户端配置文件(
local.conf
)中添加:
{
"settings": {
"allowTcpFallbackRelay": false
}
}
3. API 安全
- 限制 API 访问 IP:在企业版控制台中设置 API 白名单。
通过以上步骤,可快速实现 ZeroTier 内网穿透部署,并针对复杂场景进行优化与安全加固。