#!/bin/sh install_ZT() { if [ -f "/opt/etc/opkg.conf" ]; then logger -t "【opt环境】" "已安装,开始下载安装ZeroTier。。。" echo "【opt环境】已安装,开始下载安装ZeroTier。。。" echo "nameserver 114.114.114.114">/tmp/resolv.conf rm -rf /opt/tmp/opkg.lock opkg update logger -t "【opt环境】" "更新完成" echo "【opt环境】更新完成" opkg install http://bin.entware.net/mipselsf-k3.4/archive/zerotier_1.4.6-5_mipsel-3.4.ipk else logger -t "【opt环境】" "未安装,跳过安装ZeroTier" echo "【opt环境】未安装,跳过安装ZeroTier" exit 1 fi } run_ZT() { zerotier-one -d sleep 2 if [ -f "/etc/storage/ZT/authtoken.secret" -a -f "/etc/storage/ZT/identity.public" -a -f "/etc/storage/ZT/identity.secret" ]; then logger -t "【ZeroTier程序】" "存在备份的密钥文件" echo "【ZeroTier程序】存在备份的密钥文件" killall zerotier-one cd /etc/storage/ZT cp -rf authtoken.secret identity.public identity.secret /opt/var/lib/zerotier-one/ logger -t "【ZeroTier程序】" "已将备份的密钥文件拷贝至/opt/var/lib/zerotier-one/目录" echo "【ZeroTier程序】已将备份的密钥文件拷贝至/opt/var/lib/zerotier-one/目录" zerotier-one -d sleep 15 # 将下方的“xxxxxxxxxxxxxxxx”修改为自己在ZeroTier创建的Network ID zerotier-cli join xxxxxxxxxxxxxxxx logger -t "【ZeroTier程序】" "已加入网络" echo "【ZeroTier程序】已加入网络" else logger -t "【ZeroTier程序】" "不存在备份目录或缺失备份文件" echo "【ZeroTier程序】不存在备份目录或缺失备份文件" sleep 15 # 将下方的“xxxxxxxxxxxxxxxx”修改为自己在ZeroTier创建的Network ID zerotier-cli join xxxxxxxxxxxxxxxx logger -t "【ZeroTier程序】" "已加入网络" echo "【ZeroTier程序】已加入网络" mkdir -p /etc/storage/ZT sleep 15 cd /opt/var/lib/zerotier-one cp -rf authtoken.secret identity.public identity.secret /etc/storage/ZT/ logger -t "【ZeroTier程序】" "已备份密钥文件到/etc/storage/ZT/目录" echo "【ZeroTier程序】已备份密钥文件到/etc/storage/ZT/目录" fi sleep 15 # 需要访问其它ZeroTier的内网LAN网段,IP和网关与ZeroTier官网的配置对应即可(本机的LAN网段不用填进去) route add -net 192.168.33.0/24 gw 192.168.195.33 logger -t "【ZeroTier路由表】" "增加完成" echo "【ZeroTier路由表】增加完成" } while [ ! -e "/opt/bin/zerotier-one" ] do logger -t "【ZeroTier程序】" "未安装,开始下载安装。。。" echo "【ZeroTier程序】未安装,开始下载安装。。。" install_ZT sleep 30 done logger -t "【ZeroTier程序】" "已安装" echo "【ZeroTier程序】已安装" COUNT=$(ps | grep zerotier-one | grep -v grep | wc -l) echo $COUNT while [ $COUNT -eq 0 ] do logger -t "【ZeroTier程序】" "未启动,尝试启动" echo "【ZeroTier程序】未启动,尝试启动" run_ZT sleep 15 COUNT=$(ps | grep zerotier-one | grep -v grep | wc -l) echo $COUNT done logger -t "【ZeroTier程序】" "已启动" echo "【ZeroTier程序】已启动"