梅林zerotier开机启动脚本安装ZeroTier内网穿透设置,无公网IP通过ZeroTier内网穿透

这篇文章主要是介绍在梅林固件路由器上安装及使用zerotier的方法。

使用zerotier的有点主要是zerotier是通过P2P直连的方式,异地组网。和一些其他内网穿透方法不一样,比如frp就需要服务器端支持,是通过服务端中转的访问请求,不是直连的方式。

但是由于国内网络环境复杂,如果是移动的这种大内网,又可以穿透不了,可以等安装成功后使用PING命令,如果延迟超过200+那就是通过国外的zerotier服务端中转的。

这也是zerotier的一个优点,直连加中转也可以自己搭建中转服务器,非常灵活。zerotier-moon节点中转服务器搭建方法

Entware介绍

Entware 是一个适用于嵌入式系统的软件包库,使用 opkg 包管理系统进行管理,官方源上有超过 2000 个软件包。

官方地址:Entware

1. 安装 Entware

Entware 是一个适用于嵌入式系统的软件包库,使用 opkg 包管理系统进行管理,现在在官方的源上已经有超过2000个软件包了,可以说是非常的丰富

不同的固件,安装方式都不一样,请认准安装方式(自己是什么固件总该懂得吧??)

在梅林上使用 Entware

其他系统安装Entware的方法

在 Padavan 上使用 Entware

在 LEDE 上使用 Entware

推荐一下在老毛子Padavan固件下安装Entware及zerotier的教程,很详细

老毛子Padavan的zerotier内网穿透设置zerotier详细设置方法

安装的过程也非常简单,直接复制下面的命令SSH执行就行了。

先安装zerotier

opkg update
opkg install zerotier

运行zerotier

modprobe tun
zerotier-one -d
zerotier-cli info
200 info 497845b7e 1.2.4 ONLINE

加入申请到的网络代码

zerotier-cli join

返回200 join OK代表加入成功。

到这里登录zerotier官网后台,如下图勾选新加入设备前面以同意加入虚拟局域网。

安装ZeroTier内网穿透设置

获取路由器zerotier里的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

端口映射,添加/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/*

路由器zerotier开机启动脚本

新建S90zerotier-one.sh脚本放到/opt/etc/init.d/目录

设置755权限

chmod 755 /opt/etc/init.d/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

官方QQ群号码:922069959

您可能感兴趣的文章

留言评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注