梅林固件安装zerotier及zerotier的moon中转服务器 实现内网穿透

需要先看这里打开梅林路由的jffs 

第一大部分  安装zerotier

完成上一步 然后安装  zerotier
opkg update
opkg install zerotier

运行zerotier
modprobe tun
zerotier-one -d
zerotier-cli info

200 info 497845b7e 1.2.4 ONLINE

加入申请到的网络代码(依据你自己的id)
zerotier-cli join 9*************e

200 join OK

获取ip值
zerotier-cli listnetworks

200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks 9*************e laomms aa:bb:cc:dd:ee OK PUBLIC zt0 170.21.0.19/16

ping一下看通不通
ping 170.21.0.19 -c 4

PING 170.21.0.19 (170.21.0.19): 56 data bytes
64 bytes from 170.21.0.19: seq=0 ttl=64 time=0.237 ms
— 170.21.0.19 ping statistics —
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.097/0.139/0.237 ms

添加端口映射表:
先用iptables -v -L INPUT -n –line-numbers查询所有iptables情况:
iptables -v -t nat -L -n --line-numbers

admin@RT-AC5300-56A0:/tmp/home/root# iptables -v -L INPUT -n –line-numbers
Chain INPUT (policy ACCEPT 4304 packets, 798K bytes)
num pkts bytes target prot opt in out source destination
1 65 5109 DROP icmp — ppp0 * 0.0.0.0/0 0.0.0.0/0
2 0 0 DROP icmp — ppp0 * 0.0.0.0/0 0.0.0.0/0
3 15182 2917K INPUT_EasyExplorer all — * * 0.0.0.0/0 0.0.0.0/0
4 15182 2917K INPUT_EasyExplorer all — * * 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1688

添加一条iptables:
iptables -I INPUT 6 -i zt0 -j ACCEPT

注意这里的6是继上面5条之后加一条。再看下,已经加进去了:
admin@RT-AC5300-56A0:/tmp/home/root# iptables -v -L INPUT -n –line-numbers
Chain INPUT (policy ACCEPT 1164 packets, 256K bytes)
num pkts bytes target prot opt in out source destination
1 79 6117 DROP icmp — ppp0 * 0.0.0.0/0 0.0.0.0/0
2 0 0 DROP icmp — ppp0 * 0.0.0.0/0 0.0.0.0/0
3 18024 3524K INPUT_EasyExplorer all — * * 0.0.0.0/0 0.0.0.0/0
4 18024 3524K INPUT_EasyExplorer all — * * 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1688
6 10 1431 ACCEPT all — zt0 * 0.0.0.0/0 0.0.0.0/0

重启zerotier:
killall zerotier-one
zerotier-one -d

设置开机加载tun驱动并检测脚本是否运行:
echo "modprobe tun" >> /jffs/scripts/nat-start
echo "cru a ZeroTierDaemon "/opt/etc/init.d/S90zerotier-one.sh start"" >> /jffs/scripts/wan-start

端口映射,添加/jffs/scripts/nat-start内容,并设置开机启动(根据你自己的实际端口)
iptables -t nat -A PREROUTING -d 170.21.0.19 -p tcp –dport 80 -j DNAT –to-destination 192.168.1.1:80
用命令行实现:
echo "iptables -t nat -A PREROUTING -d 170.21.0.19 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80" >> /jffs/scripts/nat-start
echo "/opt/etc/init.d/S90zerotier-one.sh" >> /jffs/scripts/nat-start
chmod a+rx /jffs/scripts/*

启动脚本放到相应目录
chmod 755 /opt/etc/init.d/S90zerotier-one.sh

添加防火墙规则(没有开启防火墙这个无所谓):
echo "logger -t "custom iptables" "Enter" -p user.notice" >> /jffs/scripts/firewall-start
echo "iptables -C INPUT -i zt0 -j ACCEPT" >> /jffs/scripts/firewall-start
echo "if [ $? != 0 ]; then" >> /jffs/scripts/firewall-start
echo "#iptables -I INPUT -i zt0 -j ACCEPT" >> /jffs/scripts/firewall-start
echo "#iptables -I INPUT -i zt0 -p icmp -j ACCEPT" >> /jffs/scripts/firewall-start
echo "iptables -I INPUT 1 -i ppp0 -p icmp -j DROP" >> /jffs/scripts/firewall-start
echo "iptables -t nat -A PREROUTING -d <span style="color: rgb(68, 68, 68); font-family: Tahoma; background-color: rgb(255, 255, 255);">170.21.0.19</span> -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80" >> /jffs/scripts/firewall-start
echo "logger -t "custom iptables" "rules added" -p user.notice" >> /jffs/scripts/firewall-start
echo "else" >> /jffs/scripts/firewall-start
echo "logger -t "custom iptables" "rules existed skip" -p user.notice" >> /jffs/scripts/firewall-start
echo "fi" >> /jffs/scripts/firewall-start

S90zerotier-one.sh脚本内容:
#! /bin/sh

case "$1" in
start)
if ( pidof zerotier-one )
then echo "ZeroTier-One is already running."
else
echo "Starting ZeroTier-One" ;
/opt/bin/zerotier-one -d ;
echo "$(date) Started ZeroTier-One" >> /opt/var/log/zerotier-one.log ;
fi
;;
stop)
if ( pidof zerotier-one )
then
echo "Stopping ZeroTier-One";
killall zerotier-one
echo "$(date) Stopped ZeroTier-One" >> /opt/var/log/zerotier-one.log
else
echo "ZeroTier-One was not running" ;
fi
;;
status)
if ( pidof zerotier-one )
then echo "ZeroTier-One is running."
else echo "ZeroTier-One is NOT running"
fi
;;
*)
echo "Usage: /etc/init.d/zerotier-one {start|stop|status}"
exit 1
;;
esac

exit 0

第二大部分 搭建zerotier的moon中转服务器

zerotier的官方服务器在国外,国内客户端使用时延迟较大,网络高峰期时甚至各个客户端节点之间访问不了。

此时,“自定义根服务器”,又称 moon中转服务器就显得非常重要,它的主要功能是通过自定义的服务器作为跳板加速内网机器之间的互相访问。
zerotier定义了几个专业名词:
PLANET 行星级的服务器,zerotier各地的根服务器,有日本、新加坡等地。
MOON 卫星级服务器,用户自建的私有根服务器,起到中转加速的作用。
LEAF 相当于各个枝叶,就是每台连接到该网络的机器节点。
充当MOON的机子最好有公网IP,现在我们尝试用qnap搭建一个moon中转:

下面是ssh命令行。原版进入/tmp(依据下面的提示自己找)目录
zerotier-idtool generate identity.public
执行后会在 /jffs/entware-ng.arm/var/lib/zerotier-one (改版梅林(有软件中心)entware是装在jffs下,如果找不到zerotier-one目录,可以搜索一下。)

原版梅林的会在以下目录 /tmp/mnt/ESXI-6.5.0/entware/var/lib/zerotier-one (ESXI-6.5.0是我外挂u盘的名称)
进入zerotier-one目录:
cd /jffs/entware-ng.arm/var/lib/zerotier-one  小宝之类的改版梅林地址

cd /tmp/mnt/ESXI-6.5.0/entware/var/lib/zerotier-one  原版梅林(仅仅以我的u盘目录为例)

执行命令:
zerotier-idtool initmoon identity.public >>moon.json
此命令也会在当前目录下生成一个文件 moon.json,修改下内容:
nano moon.json   自己选择nano vim  命令
如果没有安装nano,用opkg install nano先安装一下。
将参数“stableEndpoints”: [ ] 修改一下,放上路由的域名及zerotier的端口:
{
“id”: “b7******e2”,
“objtype”: “world”,
“roots”: [
{
“identity”: “b724e072e2:0:84d8ba8ecaa751a91e7b1fadb7952b1f5bae0b9d0789662194872b91cf651259e5ff4148a52e2ae2a2afddaaaf2e73f682d94b2c7d18619f0ad4da8442ee3b77”,
“stableEndpoints”: [“****..asuscomm.com/9993”]
}
],
“signingKey”: “842a6d45d70c392bc4ae392ba88f20a351702e32d123907595188e17a21a9e321e2a38a6ded25dcc94c1b5199746399c7a08b149148085d1843837aed418b178”,
“signingKey_SECRET”: “dfe01b3d79571e41fe400e35c71e363c5ce02490fe2fcec1afc1f29c08f67f1c44971121574bef5a5457cde1dde349716d7d73e9e437a46c576c87e4616b5d81”,
“updatesMustBeSignedBy”: “842a6d45d70c392bc4ae392ba88f20a351702e32d123907595188e17a21a9e321e2a38a6ded25dcc94c1b5199746399c7a08b149148085d1843837aed418b178”,
“worldType”: “moon”
}

修改完保存,执行:
zerotier-idtool genmoon moon.json
这时会在目录产生一个00000b7******e2.moon文件.

在当前目录新建文件夹moons.d, 移动moon文件到该文件夹:
mkdir moons.d
mv 00000b724e072e2.moon moons.d
重启zerotier:
killall -9 zerotier-one
zerotier-one -d

以后每台节点机器要加入这个moon中转只要执行:
zerotier-cli orbit b7******e2 b7******e2

或者是需要在客户机的 /var/lib/zerotier-one 目录下新建 moons.d 文件夹和 moon 节点一样,

将 000000xxxx.moon 文件放到其中,并重启 zerotier。

在其他机子执行以下命令将会显示该moon服务器:
zerotier-cli listpeers

⭕允许随意转载;但,请点赞!点赞:NMB HOST » 梅林固件安装zerotier及zerotier的moon中转服务器 实现内网穿透

赞 (0) 支持打赏

需要你的支持 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址