在pfSense中配置ZeroTier网络

ZeroTier是一个分布式网络虚拟机管理程序,建立在加密安全的全球对等网络之上。它提供与企业 SDN 交换机同等的高级网络虚拟化和管理功能,而且可以跨本地和广域网并连接几乎任何类型的应用程序或设备。 在OPNsense中,ZeroTier已经做为一个插件提供,pfSense官方还没发布该插件,但ZeroTier有freeBSD平台的安装包,这为我们解决pfSense安装ZeroTier提供了途径。

一、下载ZeroTier包

这里下载ZeroTier安装包,根据自己的平台来选择,现在i386平台最新版本是1.42,AMD64平台是1.2.12.310_1。

二、安装软件包

通过WINSCP登录到pfSense后台,将下载的安装包上传到/tmp目录。使用Xshell等工具进入pfSense的终端,运行以下命令(红色字体部分):

[2.4.4-RELEASE][admin@JXGS.111]/root: cd /tmp
[2.4.4-RELEASE][admin@JXGS.111]/tmp: pkg install zerotier-1.2.12_3_amd.txz

三、启动ZeroTier服务

在启动ZeroTier服务之前,需要手动修改一下etc>rc.conf文件,加入以下代码并保存:
zerotier_enable=”YES”

返回到root根目录下执行命令(其他目录可能提示命令无效),在命令行输入:
[2.4.4-RELEASE][admin@JXGS.111]/tmp: cd
[2.4.4-RELEASE][admin@JXGS.111]/root:
[2.4.4-RELEASE][admin@JXGS.111]/root: service zerotier start
Starting zerotier.

四、加入ZeroTier网络

注:蓝色横线部分是你在ZeroTier网站上创建的网络ID。加入ZeroTier网络后,还必须在ZeroTier网站上进行授权,才能进行路由设定、网络互访。设置完成以后,可以在pfSense上ping其他路由的子网来测试网络是否连通。

五、ZeroTier的各类参数

在终端输入:zerotier-cli help,可以查看命令参数。
用法: zerotier-cli [-参数] <command/path> [<args>]

可用参数:
-h – 显示帮助信息
-v – 显示版本
-j – 显示完整的原始JSON输出
-D<path> -ZeroTier主路径,用于参数自动检测
-p<port> – HTTP端口 (默认: auto)
-T<token> – 认证令牌 (默认: auto)

可用命令:
info – 显示状态信息
listpeers – 显示所有的远程端
peers – 显示所有的远端连接 (列表)
listnetworks – 显示所有网络
join <network> – 加入一个网络
leave <network> – 离开一个网络
set <network> <setting> – 设置网络设置
get <network> <setting> – 获得网络设置
listmoons -显示moons (联合根集)
orbit <world ID> <seed> – 通过任意根成员加入moon
deorbit <world ID> – 离开一个moon

ZeroTier网络的详细设置,请参考这篇文章

六、已知问题

由于该插件不是为pfSense定制,在防火墙重启后服务将不能自动运行,需要手动运行一次命令。在防火墙的Web界面中,导航到系统诊断>命令行>,在执行SHELL命令输入框中输入命令:service zerotier start,然后点执行就可以了。

国外网友已经为pfSense开发了ZeroTier的Web界面的管理程序,只需安装到pfSense中就能使用。可能是没适配2.44-3版本的原因,我在测试时提示ZeroTier服务没启动,无法进行设置。这个插件可以在这里下载,安装视频请点击这里

根据pfSense的开发进度,ZeroTier将可能作为插件在2.5版本提供。