Zerotier 旁路由配置

通过安装了Zerotier-one的某个内网设备,访问内网ip段所有设备。

Zerotier后台设置

由于我们希望借助内网的这台机器作为跳板,访问内网其他设备,因此我们需要配置一定的路由规则。

配置Zerotier网关路由规则

首先,我们在zerotier官网上,设置一条路由规则,将所有尝试访问内网的请求,路由到内网的机器上面。我们假设内网的上级网段为192.168.123.*, 内网跳板机在虚拟网络中的ip为172.23.x.x, 那么就可以配置这样一条路由规则(免费用户每个网络只能额外添加一条路由规则):

这样,虚拟网络的网关就会将发往192.168.1.0/24这个网段的数据包导向这台跳板机。

开启Allow Ethernet Bridging

在Zerotier后台用户列表中,编辑跳板机,在弹出的编辑界面中勾选Allow Ethernet Bridging。(选项默认隐藏,点击Advanced可展开)

跳板机设置

接着,我们要配置这台跳板机,使得它能将来自zerotier的虚拟网卡的路由请求,转发到它的连接着内网的那个网卡接口。

首先,我们要启用内核的ip转发功能:

vim /etc/sysctl.conf

编辑上面这个文件,然后将里面关于ip路由转发的配置打开。找到以下内容,删除前面的”#”号

net.ipv4.ip_forward=1

如需开启ipv6转发,同样删除对应内容前面的”#”号

net.ipv6.ip_forward=1

保存后,输入以下命令重载配置:

sysctl -p /etc/sysctl.conf

接着,我们需要配置路由规则。

首先,我们需要确定一下zerotier虚拟网卡的名字,以及连接着内网的网卡的名字(一般为eth0、wan0等)。

在控制台输入

ifconfig

然后从输出的信息中,看对应的网段,找到虚拟网卡以及内网的网卡。zerotier的网卡名字一般是一串哈希值,看着就是很乱的无规律的字符。

接着我们直接在控制台输入以下命令,导出网卡的名字为环境变量:

PHY_IFACE=连接内网的网卡的名字
ZT_IFACE=zerotier的虚拟网卡名字

然后我们就可以在同一个控制台窗口下输入以下命令,更新路由表,就搞定了。

sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT
iptables-save

至此,内网跳板机的配置工作就结束了。

分类:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注