最近使用zerotier替换了frp来实现内网穿透,zerotier是一个软交换机,使用zerotier可以让多台内网机器组成一个局域网。
首先要安装 zerotier-one 这个软件包,如果是ArchLinux,直接运行:
sudo pacman -S zerotier-one
如果是Ubuntu/Debian/CentOS,则运行:
curl -s https://install.zerotier.com/ | sudo bash
注:如果是Windows或者macOS、Android、iOS等,那么可以在 https://www.zerotier.com/download/ 下载zerotier
之后就完成了安装,然后我们要启动zerotier,并且让他开机自启动,运行:
sudo systemctl start zerotier-one.service
sudo systemctl enable zerotier-one.service
例如我有两台内网机器,于是都按照上面的描述进行了安装和启动。接下来要做的事情是到 https://my.zerotier.com/ 里注册帐号并且登录,然后创建一个Network,创建之后点到这个网络里,拉到最上面,选择 Private(私有网络) ,这样别人加入的时候就需要认证, 如果想改名字的话,改个名字,其他不用动。然后复制 Network ID,就是拉到最上面的时候可以看到的一个类似 83048a0632246d2c 的字符串。
然后在两台内网机器上执行:
sudo zerotier-cli join 83048a0632246d2c
加入之后他们就启动了,但是还连不进我们创建的网络,因为我们选择了 Private(私有网络) ,我们还需要到 https://my.zerotier.com/ 上面对接入的机器打勾,拉到 Members 这一节,把前面的两个勾勾选上。
iptables -I FORWARD -i eth0 -j ACCEPT
iptables -I FORWARD -o eth0 -j ACCEPT
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
iptables -I FORWARD -i ztklhuwps5 -j ACCEPT
iptables -I FORWARD -o ztklhuwps5 -j ACCEPT
iptables -t nat -I POSTROUTING -o ztklhuwps5 -j MASQUERADE
这个时候执行一下 ip a 你会发现多了一个叫做 ztuzethlza 或者类似名字的设备,还有IP地址,这就是zerotier组建的局域网的IP 地址,但是这个时候你如果直接连接另外一台机器的话可能会非常慢,所以为了加速,我们还需要一台在国内的,或者是在国外但是访问 速度相当快的机器做转发。