ZeroTier 是一个建立在加密安全全球对等网络之上的分布式网络虚拟化平台。它提供了接近企业级 SDN 交换机的高级网络虚拟化与管理能力,可跨越局域网与广域网,将各种设备与应用安全地连接在一起。
目前,pfSense 官方尚未提供 ZeroTier 插件。借助 ChatGPT 辅助开发,编写了适用于 pfSense 的 ZeroTier Web 管理插件,并在 pfSense Plus 26.03.1 (freeBSD 16)和 pfSesne CE 2.8.1 (freeBSD15)环境中测试通过。
安装插件
下载附件后,将文件解压并上传至防火墙的 /root 目录,运行以下命令进行安装:
pkg add pfSense-pkg-zerotier-1.16.2.pkg
下图为在 pfSense CE 上的安装过程。
启用服务
登录 pfSense Web 管理界面,转到 VPN>ZeroTier VPN,勾选 Enable Zerotier Client(启用 Zerotier 客户端) 选项后保存配置。
加入网络
进入 VPN>ZeroTier VPN,切换到“网络(Networks)”选项卡,点击右侧“加入(Join)”按钮。输入需要加入的 ZeroTier Network ID 后保存即可。
因为还没授权,处于拒绝访问的状态。
添加授权
打开浏览器访问 ZeroTier 控制台,在成员(Members)列表中,会看到一个等待授权的新节点。
- 勾选 Authorized
- 输入节点名称
- 指定IP地址
- 点击Save

保存后,右上角显示已授权。返回 VPN>ZeroTier VPN,网络选项卡,网络状态已显示OK。
管理路由
在 ZeroTier 控制台的“路由管理(Managed Routes)”中,添加指向 pfSense 防火墙局域网的路由:
- Destination(目标网络):填写 pfSense 的 LAN 网段
- Via(下一跳):填写 pfSense 分配到的 ZeroTier 节点地址
即可允许远程节点访问 pfSense 后方局域网。
查看节点
进入 VPN>ZeroTier VPN,在端点选项卡中,可以查看当前 ZeroTier 网络中各节点的连接状态与详细信息。
添加规则
为了确保 pfSense 后方客户端能够访问远程 ZeroTier 网络,需要在LAN接口上添加一条 LAN NET to ANY的规则,或者根据实际需求,仅放行到 ZeroTier 网段的访问规则。如下图所示。
高级设置
配置中的 local.conf 选项,可以给 ZeroTier 节点添加本地运行参数,更精准控制节点的运行。如禁止 ZeroTier 使用内网地址进行直连,固定监听端口,禁用 NAT-PMP / UPnP 自动端口映射,禁用备用端口与 TCP 回退中继等。通常用于多 WAN / 防火墙环境,希望强制走公网路径,避免错误的 LAN 直连,严格限制打洞行为等,来提高安全可控性。
具体参数可参考OPNsense上的Zerotier的设置。
卸载插件
在shell环境下,运行以下命令卸载:
pkg remove pfSense-pkg-zerotier
测试网络
配置完成后,可通过ping 对端设备、traceroute 检查路由、测试 NAS/SSH/RDP 等服务测试各节点之间的网络连通情况,以确认 ZeroTier 网络是否正常工作。
注意事项
- 不要在接口>分配菜单尝试分配 ZeroTier 接口,否则可能导致防火墙重启后网络配置被重置
- 安装包已自带开机自启脚本,不需要再通过 shellcmd 插件添加 ZeroTier 开机启动命令,否则可能导致 pfSense 在启动过程中卡死,无法正常完成引导。
项目地址








感谢您的教程,很有帮助!
zerotier-1.10.3.txz文件下载不了,https://pkg.freebsd.org/FreeBSD:13:amd64/latest/All/这个链接不存在
https://pkg.freebsd.org/FreeBSD:13:amd64/latest/All/zerotier-1.10.4.pkg