夜雨聆风学习资料网

ARTICLE · 1161124

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-certificates

2. 安装 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 ONLINE

ONLINE 表示节点能够连接 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 = 1

2. 添加 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
查看最近的服务日志

相关学习资料