ZeroTier 安装与配置完整教程
ZeroTier 安装与配置完整教程
ZeroTier 是一款虚拟组网软件,可以让不同地点的电脑、服务器组成一个虚拟局域网。不需要公网 IP,也不需要配置传统 VPN 服务器,就可以实现跨互联网的远程访问。
一、ZeroTier 的工作原理
示意 IP,仅用于本教程。Central 负责网络管理与授权;设备间尽可能直接建立加密连接,无法直连时可能经中继。
ZeroTier 的特点:
- 跨地区组网:公司、家庭、外地电脑可以互联。
- 支持 Windows、Linux、macOS、Android、iOS 等系统。
- 可以直接通过虚拟 IP 访问 SSH、远程桌面及 Web 服务。
- 不需要给服务器开放公网 SSH 或 RDP 端口。
- 可以通过配置路由,让远程电脑访问整个公司局域网。
二、创建 ZeroTier 虚拟网络
先访问:
- 管理控制台:ZeroTier Central https://central.zerotier.com/
- 软件下载:ZeroTier 官方下载 https://www.zerotier.com/download/
- 官方操作文档:Quickstart https://docs.zerotier.com/quickstart/
进入控制台,注册或登录账号,创建一个 Network。
建议采用以下配置:
| 配置项目 | 建议值 |
|---|---|
| Network Name | Company-IT |
| Network ID | 系统自动生成 |
| Access Control | Private |
| IPv4 网段 | 10.10.10.0/24 |
| IPv4 Auto-Assign | 启用 |
| IPv6 | 根据需要启用 |
注意:10.10.10.0/24 是示例网段,必须确保不与现有公司内网、家用路由器或其他 VPN 网段冲突。
创建以后会得到一个 16 位十六进制 Network ID,例如:
8056c2e21c000001这只是示例,实际操作要替换成你自己创建的 Network ID。
三、Debian 12 / Debian 13 安装
1. 更新系统并安装依赖
sudo apt update
sudo apt install -y curl gnupg ca-certificates2. 安装 ZeroTier
官方提供自动安装脚本:
curl -s https://install.zerotier.com | sudo bash此脚本会配置 ZeroTier 软件源并安装服务。生产服务器如果有变更审计要求,可以先下载、检查脚本,再执行。
3. 启动服务和设置开机启动
sudo systemctl enable --now zerotier-one查看服务运行状态:
sudo systemctl status zerotier-one查看 ZeroTier 节点状态:
sudo zerotier-cli status正常情况下可看到类似:
200 info a1b2c3d4e5 1.16.2 ONLINEONLINE 表示节点能够连接 ZeroTier 基础网络。
4. 加入虚拟网络
sudo zerotier-cli join 8056c2e21c000001返回:
200 join OK注意,这只表示加入网络的请求已被接受,还需要在控制台授权设备。
5. 查看网络连接状态
sudo zerotier-cli listnetworks成功授权后,会看到 OK 状态以及分配的虚拟 IP,例如:
10.10.10.3/24授权之前可能显示 ACCESS_DENIED,属于正常现象。
四、Windows 11 安装
从 ZeroTier 官方网站 https://www.zerotier.com/download/ 下载 Windows 安装包并安装。
安装完成后,在系统任务栏右下角找到 ZeroTier 图标,选择 Join New Network,输入 Network ID,确认加入。
也可以使用管理员 PowerShell 执行:
zerotier-cli join 8056c2e21c000001如果命令找不到,可以尝试:
& "C:\Program Files (x86)\ZeroTier\One\zerotier-cli.bat" status具体命令路径以实际安装目录为准。
五、授权设备并配置固定 IP
返回 ZeroTier Central,打开对应网络,找到成员设备(Member Devices)。
给已加入的 Windows 和 Debian 节点分别授权,并建议分配固定的 Managed IP:
| 设备 | ZeroTier IP | 用途 |
|---|---|---|
| 管理员 Windows 11 | 10.10.10.2 | 远程维护 |
| Debian 服务器 | 10.10.10.3 | SSH、Web 应用 |
| Windows Server | 10.10.10.4 | RDP、ERP |
| 其他管理服务器 | 10.10.10.5 | 内部运维 |
上述都是规划示例,不是自动生成的地址。
授权并分配地址后,在 Windows 中测试:
ping 10.10.10.3测试 Debian SSH:
ssh admin@10.10.10.3其中 admin 替换为服务器真实用户名。
如果你的 Flask 应用通过 Nginx 监听 80/443,且防火墙允许 ZeroTier 网段访问,就可以使用:
http://10.10.10.3
https://10.10.10.3访问 Web 应用。HTTPS 如果使用的是域名证书,通过 IP 访问可能出现证书名称不匹配的问题,正式使用建议配置内部 DNS 或对应域名。
六、进阶配置:远程访问公司整个局域网
如果你只是访问安装了 ZeroTier 的 Debian 服务器,前面的步骤已经足够。
但如果你希望在家中通过 Windows 11 访问公司里的 ERP、WMS、SQL Server管理系统,而这些设备不能安装 ZeroTier,就需要设置 ZeroTier 网关。
我建议在公司内部署一台 Debian 虚拟机作为专用网关。
企业内网示意架构,IP 地址需要根据实际网络调整。
1. 开启 Debian IP 转发
sudo tee /etc/sysctl.d/99-zerotier-router.conf >/dev/null <<'EOF'
net.ipv4.ip_forward=1
EOF
sudo sysctl --system检查是否生效:
sysctl net.ipv4.ip_forward正常结果:
net.ipv4.ip_forward = 12. 添加 Managed Route
在 ZeroTier Central 中找到:
Network → Settings → Managed Routes
添加:
| Destination | Via |
|---|---|
| 192.168.1.0/24 | 10.10.10.3 |
这样,远程 ZeroTier 客户端就知道访问公司内网时应该经过 Debian 网关。
3. 配置网关 NAT
假设:
- 公司内网网卡为 ens18
- ZeroTier 网卡为 ztxxxxxxxx
- ZeroTier 网段为 10.10.10.0/24
- 公司内网网段为 192.168.1.0/24
先运行 ip -br addr 查看真实网卡名,再调整以下命令:
LAN_IF=ens18
ZT_IF=ztxxxxxxxx
sudo iptables -A FORWARD -i "$ZT_IF" -o "$LAN_IF" \
-s 10.10.10.0/24 -d 192.168.1.0/24 \
-j ACCEPT
sudo iptables -A FORWARD -i "$LAN_IF" -o "$ZT_IF" \
-m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT
sudo iptables -t nat -A POSTROUTING \
-s 10.10.10.0/24 -d 192.168.1.0/24 \
-o "$LAN_IF" -j MASQUERADE注意:以上命令用于理解和测试基本 NAT 方案。若服务器已经运行 nftables、UFW 或其他防火墙,需要先检查现有规则,避免冲突。
测试成功后可以安装 iptables-persistent 保存规则。
官方也推荐使用三层路由方式连接物理网络与 ZeroTier 网络。
对于生产环境,我建议进一步按设备 IP、目标端口做访问控制,不要默认让 ZeroTier 客户端访问全部 ERP、数据库和工控设备。
七、常用维护命令
| 命令 | 作用 |
|---|---|
| sudo zerotier-cli status | 查看节点在线状态 |
| sudo zerotier-cli listnetworks | 查看已加入的网络 |
| sudo zerotier-cli listpeers | 查看节点连接情况 |
| sudo zerotier-cli join NETWORK_ID | 加入网络 |
| sudo zerotier-cli leave NETWORK_ID | 退出网络 |
| sudo systemctl restart zerotier-one | 重启服务 |
| ip -br addr | 查看虚拟网卡及 IP |
| journalctl -u zerotier-one -n 100 | 查看最近的服务日志 |