padavan固件安装与升级tailscale的方法
本教程来源于https://blog.csdn.net/gogoing0123/article/details/145264720,并修正了一些改变
本教程理论上适用于所有采用padavan固件的路由器升级tailscale的方法
简化版的安装与升级方法(采用WEB与SSH配合配置) 详细版的方法看下文及解释
本文经过多次编辑与配图,图不一定能匹配上,但步骤是经过多次实践验证过的,如有错误请留言
简化版的安装与升级方法
1.首次安装时开启默认的tailscale服务,升级版本从下文中的 简化后的升级tailscale步骤 开始

2.停止tailscale(选关闭后等一分钟再操作下面步骤)
3.编辑默认的脚本文件
vi /etc/storage/script/Sh89_tailscale.sh
注释代码,位于118 ,119行
# [[ "$($SVC_PATH2 -h 2>&1 | wc -l)" -lt 2 ]] && [ ! -z $SVC_PATH2 ] && rm -rf $SVC_PATH2
# [ ! -f "$SVC_PATH2" ] && ln -sf "$SVC_PATH" "$SVC_PATH2"
修改127行目录,将 socket=/var/run/tailscaled.sock 修改为 socket=/var/run/tailscale/tailscaled.sock
修改
su_cmd2="$SVC_PATH --state=/opt/app/tailscale/lib/tailscaled.state --socket=/var/run/tailscale/tailscaled.sock"
4.新建tailscale文件夹
mkdir /var/run/tailscale
5.删除默认已存在的文件,原文件如下图
rm -f /opt/bin/tailscale /opt/bin/tailscaled

6.上传tailscaled与tailscale
7.给文件授权
chmod +x /opt/bin/tailscale /opt/bin/tailscaled
8.启动tailscale(WEB端操作)
简化后的升级tailscale步骤
1.从官网下载最版的tailscale的软件 tailscale官方下载链接地址
2.解压此文件,找到解压后的tailscaled文件并直接用SSH工具上传到/opt/bin/目录中
3.WEB里直接启动tailscale服务(注意上传后的文件权限)
本教程理论上适用于所有采用padavan固件的路由器升级tailscale的方法
极路由4增强版型号为HC5962,与官方的B70采用同样的硬件,故padavan官方固件采用B70的型号,固件采用: 3.4.3.9-099_24-06-1 版本
先看原文及本文,有部分步骤可以省略,本文教程中第11步新建好tailscale目录,启动运行tailscale后会在目录中自动生成tailscaled.sock文件,所以第12-13步未操作也可以
下文以此型号测试并成功升级到最新版的tailscale
1.下载适合极四增padavan的新版tailscale软件
tailscale官网: https://pkgs.tailscale.com/stable/#static
2.开启padavan中SSH服务
位于:高级设置-系统管理-服务中的终端服务
3.开启tailscale服务

注:首次开启时需要安装tailscale服务,网络较好时等三分钟左右,当提示提示守护进程启动后再把tailscale关闭,安装新版本时需要退出后台进程
4.使用winscp软件备份原tailscale、tailscaled文件。
Winscp软件登录到路由器的方法参考原文的
文件位置:/opt/bin/,找到这两个文件后,修改文件名为:tailscale.bak、tailscaled.bak。
此处截图为安装成功后截图,新安装好的只有2个文件
5.在电脑中解压第一步下载的tailscale_1.80.2_mipsle.tgz

6.使用winscp软件将第五步中的两个文件上传到/opt/bin/目录中(第四步打开的)

7.修改文件权限为777。
右键复制进去的文件(tailscale、tailscaled),选择属性,将文件的权限改为0777后点击确认。
正常来说此处在WEB控制台就可以正式开启tailscale服务了,开启失败或者使用管理的IP地址仍无法访问,主要是因为程序的运行路径改变导致的,需要执行以下步骤
8.修改tailscale的启动脚本(此步为解释说明,无需执行操作命令,只是验证存在的问题)
由于tailscale的版本不同,tailscale文件必须连接到tailscaled才能对其进行管理。
由于新版本的tailscale文件运行获取状态的位置是此目录:
/var/run/tailscale/tailscaled.sock
但旧版本的固件内脚本默认指定的位置是此目录:
/var/run/tailscaled.sock
目录不一致所以,当升级完版本之后,开启tailscale后用ssh命令执行tailscale status时可能会出现如下报错:
9.使用SSH修改路径并查看脚本文件
此处原文中的路径无法访问,经查找新版使用了 /etc/storage/script 目录,使用SSH命令执行,Sh89是tailscale的脚本,如下图
cd /etc/storage/script

10.备份脚本文件并编辑
cp Sh89_tailscale.sh Sh89_tailscale.sh.bak
编辑脚本内容,大概在第127行处
vi Sh89_tailscale.sh
注:vi具体使用方法可百度。此处简单说明
按i进入编辑模式,上下键找到需要修改的地方,编辑完成后按esc键退出,此时光标切换到最下面,输入 :wq 可保存刚刚编辑的内容
上图中为已修改的。主要把原来的路径添加个tailscale目录,改完如上图
11.用ssh软件进入 /var/run 目录并新建tailscale目录
cd /var/run
mkdir tailscale
12.复制文件tailscaled.sock到/var/run/tailscale目录中
(保存上面的脚本文件后就直接在控制台开启tailscale,此步骤无需执行,如果仍有问题,可以在 /var/run目录再执行如下命令)
cp tailscaled.sock /var/run/tailscale
13.查看是否成功
cd /var/run/tailscale
ls

14.WEB控制台重新开启tailscale即可,启动后就是最新版本

如开启后仍无法访问tailscale控制的web界面,可以使用ssh的命令开启
tailscale up

15.浏览器访问此地址可加入taiscale组网


第12步到第15步也可以使用winscp软件新建文件夹并复制tailscaled.sock,内容一致就行
16.启用tailscale后使用ssh软件查看状态,能正常显示已组网的设备信息即成功
tailscale status
17.升级tailscale版本
tailscale update
如果升级过程中网络较慢,可以到官网下载安装包
https://pkgs.tailscale.com/stable/#static
手动上传升级包(默认下载的目录为)
/home/admin/.cache/tailscale-update/
上传文件后 再执行 tailscale update (如无法启用成功。笔者下载时提示磁盘空间不足,无法用命令直接更新,实在不想折腾了就走手动更换的方法,如下)
18.手动更新软件版本
官网下载最新版本 https://pkgs.tailscale.com/stable/#static
直接替换运行程序(需要先关闭服务,替换完成后再启用服务,启用无响应时可以点一下后面的重启按纽)
使用winscp将原文件先备份(官网下载的是tgz格式的需要先解压后再将文件放到/opt/bin目录中)
此时进入控制台开启服务,启用无响应时可以点一下后面的重启按纽
日志中也会显示启动成功的提示
tailscale高级用法
node模式(代理上网)
tailscale up --advertise-exit-node --accept-routes --hostname=B70

Subnet routers模式 (子网路由模式),
tailscale up --advertise-routes=192.168.199.0/24 --accept-routes
也可以这两个混合一起使用
tailscale up --advertise-routes=192.168.199.0/24 --accept-routes --advertise-exit-node
高级用法的具体用途自行百度,此处不做介绍
其它问题
执行tatailscale up时提示 tailscaled does not take non-flag arguments: [“up”]
此处主要为分析问题原因并给出解决办法,解决方法直接看下文
最近更新tailscale的新版本时报错
根本原因是:脚本错误地将 tailscale 命令指向了 tailscaled 二进制文件(通过软链接),导致执行 tailscale up 实际变成了 tailscaled up,而 tailscaled 不接受 up 这类子命令。
如下图中 tailscale 的软链接指向

说明 你错误地用 tailscaled 命令去执行了 up 操作,而实际上:
- tailscaled 是 Tailscale 的后台守护进程(daemon),它只接受配置标志(如 --state, --socket
等),不能直接跟 up、down 这类子命令。 - tailscale(不带 d)才是 客户端命令行工具,用于执行up、down、status、web 等操作。
此目录文件/etc/storage/script/Sh89_tailscale.sh脚本中有这样一行:(位于第119行代码左右)
[ ! -f "$SVC_PATH2" ] && ln -sf "$SVC_PATH" "$SVC_PATH2"
其中:
- SVC_PATH 是 tailscaled 的路径(由 i_app_get_cmd_file -cmd=“tailscaled” 设定)
- SVC_PATH2 是 tailscale 的路径
这一行的意思是:
如果 /opt/bin/tailscale 不存在,就把它软链接到 $SVC_PATH(即 /opt/bin/tailscaled)。
这里就存在严重 bug!把 tailscaled 的二进制文件 软链接给了 tailscale,导致:/opt/bin/tailscale → 实际是 tailscaled 二进制
所以当你运行 tailscale up,其实是在运行 tailscaled up,于是报错!
根本问题:使用了错误的软链接
# 脚本中的问题代码:
SVC_PATH2="$(which tailscale)"
[ ! -s "$SVC_PATH2" ] && SVC_PATH2="/opt/bin/tailscale"
...
[ ! -f "$SVC_PATH2" ] && ln -sf "$SVC_PATH" "$SVC_PATH2"
- SVC_PATH 是 tailscaled 的路径(比如 /opt/bin/tailscaled) 却把它链接成tailscale,这完全错误!
- tailscale 和 tailscaled 是两个不同的可执行文件,不能互相替代。
修复步骤
方案一:
1.ssh终端里删除错误的软链接或者使用winscp之类的软件直接删除tailscale文件:
rm -f /opt/bin/tailscale
2.重新下载正确的 tailscale 客户端(也就是重新上传tailscale与tailscaled文件)
从官网下载带有这两个文件的压缩包
3.重新授权
chmod +x /opt/bin/tailscale /opt/bin/tailscaled
4.启用tailscale服务
方案二:
只注释这两行代码,只要目录中存在 /opt/bin/tailscale 文件就是可以执行的,此代码位于脚本的118,119行
# [[ "$($SVC_PATH2 -h 2>&1 | wc -l)" -lt 2 ]] && [ ! -z $SVC_PATH2 ] && rm -rf $SVC_PATH2
# [ ! -f "$SVC_PATH2" ] && ln -sf "$SVC_PATH" "$SVC_PATH2"
执行结果有以下两种情况:
第一:
如果系统里已经有正确的 /opt/bin/tailscale(比如你手动安装过,或插件已正确部署),
SVC_PATH2 就指向它,后续 tailscale up 能正常工作 ✅
第二:
如果文件中没有 tailscale 文件,
脚本会尝试运行一个不存在的命令,最多报“command not found”,但不会执行错误的 tailscaled up
如果找不到tailscale文件可以去作者的仓库下载安装的软件下载地址
https://github.com/hiboyhiboy/opt-file
注释这两行代码后须再按方案一上传tailscale与tailscaled文件并将文件授权,
方案二里不调整时无法在ssh里执行tailscale up之类的命令
此处为这两行解释运行的意图
“如果系统里没有正确的 tailscale 命令,就临时用 tailscaled 代替一下。”
但这个“代替”是错误的,因为 tailscale 和 tailscaled 是两个完全不同的程序
第一行详解
- $SVC_PATH2
这是一个变量,通常值是 /opt/bin/tailscale(即 tailscale 命令的路径)。 - $SVC_PATH2 -h
尝试运行 tailscale -h,也就是让程序显示“帮助信息”。 - 2>&1
把错误信息(stderr)也合并到正常输出(stdout)里。
(因为如果文件不是有效程序,会报错,比如 “not found” 或 “Permission denied”) - | wc -l
统计输出有几行。
正常的 tailscale -h 会输出很多行(至少 10 行以上)。
如果文件不存在、损坏、或根本不是 tailscale,输出可能只有 0 或 1 行。 - “$(…)” -lt 2
-lt 意思是 “less than”(小于)。
所以:如果帮助信息少于 2 行 → 认为这个 tailscale 文件“无效”。 - [ ! -z $SVC_PATH2 ]
检查 $SVC_PATH2 变量是否非空(即路径确实被设置了)。 - rm -rf $SVC_PATH2
如果上面两个条件都满足(文件无效 + 路径存在),就强制删除它。
第一行总结:
✅ “如果执行 /opt/bin/tailscale文件时 返回的信息少于2行时,就把它删掉。此处容易误删真正的tailscale文件”
第二行详解:
- [ ! -f “$SVC_PATH2” ]
检查 /opt/bin/tailscale 这个文件是否存在。
! -f = “not a regular file” → 文件不存在。 - ln -sf “SVC_PATH” “SVC_PATH2”
创建一个软链接(symbolic link):
源文件(target):SVC_PATH → 通常是 /opt/bin/tailscaled
链接名(link name):SVC_PATH2 → /opt/bin/tailscale
ln -s = 创建软链接
ln -f = 强制覆盖已存在的链接
✅ 第二行总结:
“如果 /opt/bin/tailscale 不存在,就创建一个快捷方式,让它指向 tailscaled。误删tailscale(无d)时将指令指向错误的文件,导致命令出错”
配置备份功能代码,此处只做说明不用配置
tailscale_backup() #此处代码所起的作用
Tailscale 登录后会生成一个“身份文件”(tailscaled.state),必须保存,否则每次都要重新登录。
正常运行时:把 /opt/app/tailscale/lib/ 里的文件备份到 /etc/storage/tailscale/lib/(路由器闪存,断电不丢)。
启动时:从闪存恢复到运行目录。
使用
md5sum比较内容,只在文件变化时才复制,保护闪存寿命。
更换默认下载目录地址(方案验证未通过,仍有问题待解决,解决后会再次更新)
Tailscale 的 update 命令遵循 XDG Base Directory Specification,它会读取环境变量 XDG_CACHE_HOME 来决定缓存路径。
- 默认:$HOME/.cache → 你的系统是 /home/admin/.cache
- 修改后:XDG_CACHE_HOME=/tmp/.cache → 缓存变为 /tmp/.cache
🔧 操作步骤
方法 1:单次更新时临时指定缓存目录
设置环境变量并立即执行更新
XDG_CACHE_HOME=/tmp/.cache tailscale update
这条命令会让 Tailscale 把下载的 .tgz 文件存到 /tmp/.cache/tailscale-update/,利用 /tmp 的内存空间完成更新。
✅ 优点:无需修改系统配置,安全可靠
⚠️ 注意:确保 /tmp 有足够空间(运行 df -h /tmp 查看)
方法 2:在你的初始化脚本(init.sh)中永久设置
如果你的 init.sh 会定期调用 tailscale update,建议在脚本开头加上:
在 init.sh 开头添加
export XDG_CACHE_HOME="/tmp/.cache"
mkdir -p "$XDG_CACHE_HOME"
这样后续所有 tailscale update 都会使用 /tmp/.cache,避免空间不足。
方法 3:手动清理 + 强制重试(快速修复)
如果只是临时想让更新成功,可以:
- 清理旧缓存
rm -rf /home/admin/.cache/tailscale-update/
- 临时用 /tmp 作为 HOME(极端方法,不推荐长期用)
HOME=/tmp XDG_CACHE_HOME=/tmp/.cache tailscale update
以下为作者原始脚本内容,仅供参考
原始脚本文件位于cd /etc/storage/script 目录中的 Sh89_tailscale.sh
源脚本的文件内容为(复制于2026年1月19日)
#!/bin/bash
#copyright by hiboy
source /etc/storage/script/init.sh
tailscale_enable=`nvram get app_82`
if [ "$tailscale_enable" != "0" ] && [ "$tailscale_enable" != "1" ] && [ "$tailscale_enable" != "2" ] && [ "$tailscale_enable" != "3" ] && [ "$tailscale_enable" != "4" ] ; then
tailscale_enable=""
fi
[ -z $tailscale_enable ] && tailscale_enable=0 && nvram set app_82=0
tailscale_cmd="$(nvram get app_44)"
if [ -z "$(echo $tailscale_cmd | grep tailscale)" ] ; then
tailscale_cmd=""
fi
[ -z "$tailscale_cmd" ] && tailscale_cmd="tailscale up" && nvram set app_44="$tailscale_cmd"
tailscale_renum=`nvram get tailscale_renum`
if [ ! -z "$(echo $scriptfilepath | grep -v "/tmp/script/" | grep tailscale)" ] && [ ! -s /tmp/script/_app11 ] ; then
mkdir -p /tmp/script
{ echo '#!/bin/bash' ; echo $scriptfilepath '"$@"' '&' ; } > /tmp/script/_app11
chmod 777 /tmp/script/_app11
fi
tailscale_restart () {
i_app_restart "$@" -name="tailscale"
}
tailscale_get_status () {
if [ "$tailscale_enable" = "3" ] ; then
logger -t "【tailscale】" "配置恢复初始化"
iptables -D INPUT -i tailscale0 -j ACCEPT
killall tailscaled tailscale
rm -rf /opt/app/tailscale/lib/*
rm -rf /etc/storage/tailscale/lib/*
tailscale_enable=0 && nvram set app_82=0
fi
if [ "$tailscale_enable" = "1" ] || [ "$tailscale_enable" = "2" ] || [ "$tailscale_enable" = "4" ] ; then
B_restart="1"
fi
B_restart="$B_restart$tailscale_cmd"
i_app_get_status -name="tailscale" -valb="$B_restart"
}
tailscale_check () {
tailscale_get_status
if [ "$tailscale_enable" = "0" ] && [ "$needed_restart" = "1" ] ; then
[ ! -z "`pidof tailscaled`" ] && logger -t "【tailscale】" "停止 tailscale" && tailscale_close
{ kill_ps "$scriptname" exit0; exit 0; }
fi
if [ "$tailscale_enable" = "1" ] || [ "$tailscale_enable" = "2" ] || [ "$tailscale_enable" = "4" ] ; then
if [ "$needed_restart" = "1" ] ; then
tailscale_close
tailscale_start
else
[ -z "`pidof tailscaled`" ] && tailscale_restart
if [ "$tailscale_enable" = "2" ] && [ -z "`pidof tailscale`" ] ; then
SVC_PATH2="$(which tailscale)"
[ ! -s "$SVC_PATH2" ] && SVC_PATH2="/opt/bin/tailscale"
su_cmd2="$SVC_PATH2 web --listen `nvram get lan_ipaddr`:8989"
logger -t "【tailscale】" "运行本机管理界面 $su_cmd2"
eval "$su_cmd2" &
fi
iptables -C INPUT -i tailscale0 -j ACCEPT
if [ "$?" != 0 ] ; then
iptables -A INPUT -i tailscale0 -j ACCEPT
fi
fi
fi
}
tailscale_keep () {
i_app_keep -name="tailscale" -pidof="tailscaled" &
tailscale_enable=`nvram get app_82`
offweb=1
while [ "$tailscale_enable" = "1" ] || [ "$tailscale_enable" = "2" ] || [ "$tailscale_enable" = "4" ] ; do
iptables -C INPUT -i tailscale0 -j ACCEPT
if [ "$?" != 0 ] ; then
iptables -A INPUT -i tailscale0 -j ACCEPT
fi
tailscale_backup
sleep 100
if [ "$tailscale_enable" = "2" ] || [ "$tailscale_enable" = "4" ] ; then
if [ "$offweb" -gt "3" ] ; then
offweb=1
[ "$tailscale_enable" = "2" ] && logger -t "【tailscale】" "本机管理界面 (自动关闭)"
[ "$tailscale_enable" = "4" ] && logger -t "【tailscale】" "自定义参数启动 (自动关闭)"
tailscale_enable=1 && nvram set app_82=1
killall tailscale
fi
offweb=`expr $offweb + 1`
fi
tailscale_enable=`nvram get app_82`
done
}
tailscale_close () {
kill_ps "$scriptname keep"
sed -Ei '/【tailscale】|^$/d' /tmp/script/_opt_script_check
iptables -D INPUT -i tailscale0 -j ACCEPT
killall tailscaled tailscale
tailscale_backup
umount /opt/app/tailscale/lib/tailscaled.state
umount /opt/app/tailscale/lib/cmd.log.conf
kill_ps "/tmp/script/_app11"
kill_ps "_tailscale.sh"
kill_ps "$scriptname"
}
tailscale_start () {
check_webui_yes
i_app_get_cmd_file -name="tailscale" -cmd="tailscaled" -cpath="/opt/bin/tailscaled" -down1="$hiboyfile/tailscaled" -down2="$hiboyfile2/tailscaled"
SVC_PATH2="$(which tailscale)"
[ ! -s "$SVC_PATH2" ] && SVC_PATH2="/opt/bin/tailscale"
mkdir -p /etc/storage/tailscale/lib
mkdir -p /opt/app/tailscale/lib
tailscale_backup rebackup
[[ "$($SVC_PATH2 -h 2>&1 | wc -l)" -lt 2 ]] && [ ! -z $SVC_PATH2 ] && rm -rf $SVC_PATH2
[ ! -f "$SVC_PATH2" ] && ln -sf "$SVC_PATH" "$SVC_PATH2"
tailscale_v=$($SVC_PATH -version | sed -n '1p')
[ "$(nvram get tailscale_v)" != "$tailscale_v" ] && nvram set tailscale_v="$tailscale_v"
if [ ! -s "$SVC_PATH" ] ; then
logger -t "【tailscale】" "找不到 $SVC_PATH ,需要手动安装 $SVC_PATH"
logger -t "【tailscale】" "启动失败, 10 秒后自动尝试重新启动" && sleep 10 && tailscale_restart x
fi
cd "$(dirname "$SVC_PATH")"
su_cmd2="$SVC_PATH --state=/opt/app/tailscale/lib/tailscaled.state --socket=/var/run/tailscaled.sock"
logger -t "【tailscaled】" "运行主程序 $su_cmd2"
eval "$su_cmd2" &
sleep 4
i_app_keep -t -name="tailscale" -pidof="tailscaled"
iptables -C INPUT -i tailscale0 -j ACCEPT
if [ "$?" != 0 ] ; then
iptables -A INPUT -i tailscale0 -j ACCEPT
fi
if [ "$tailscale_enable" = "4" ] ; then
tailscale_cmd
logger -t "【tailscale】" "自定义参数启动 $su_cmd2"
cmd_name="tailscale_cmd"
$tailscale_cmd 2>&1 | awk '{cmd="logger -t '"'"'【'$cmd_name'】'"' ' "'"$0"'"' "';";system(cmd)}' &
sleep 4
fi
if [ "$tailscale_enable" = "2" ] ; then
su_cmd2="$SVC_PATH2 web --listen `nvram get lan_ipaddr`:8989"
logger -t "【tailscale】" "运行本机管理界面 $su_cmd2"
eval "$su_cmd2" &
sleep 4
[ ! -z "`pidof tailscale`" ] && logger -t "【tailscale】" "本机管理界面 启动成功" && tailscale_restart o
[ -z "`pidof tailscale`" ] && logger -t "【tailscale】" "本机管理界面 启动失败, 注意检tailscale是否下载完整,10 秒后自动尝试重新启动" && sleep 10 && tailscale_restart x
logger -t "【tailscale】" "本机管理界面 (5分钟自动关闭)"
fi
tailscale_backup
eval "$scriptfilepath keep &"
exit 0
}
tailscale_backup () {
rebackup=$1
if [ -z "$rebackup" ] ; then
for t_paths in /opt/app/tailscale/lib/*
do
t_conf="$(basename "$(echo $t_paths | grep -v .txt)")"
if [ ! -z $t_conf ] ; then
MD5_backup="$(md5sum /opt/app/tailscale/lib/$t_conf | awk '{print $1;}')"
MD5_storage="$(md5sum /etc/storage/tailscale/lib/$t_conf | awk '{print $1;}')"
if [ "$MD5_backup"x != "$MD5_storage"x ] ; then
cp -f /opt/app/tailscale/lib/$t_conf /etc/storage/tailscale/lib/$t_conf
logger -t "【tailscale】" "备份配置文件 $t_conf 到路由内部储存"
fi
fi
done
else
for t_paths in /etc/storage/tailscale/lib/*
do
t_conf="$(basename "$(echo $t_paths | grep -v .txt)")"
if [ ! -z $t_conf ] ; then
MD5_backup="$(md5sum /opt/app/tailscale/lib/$t_conf | awk '{print $1;}')"
MD5_storage="$(md5sum /etc/storage/tailscale/lib/$t_conf | awk '{print $1;}')"
if [ "$MD5_backup"x != "$MD5_storage"x ] ; then
cp -f /etc/storage/tailscale/lib/$t_conf /opt/app/tailscale/lib/$t_conf
logger -t "【tailscale】" "从路由内部储存恢复配置文件 $t_conf"
fi
fi
done
fi
}
update_app () {
mkdir -p /opt/app/tailscale
if [ "$1" = "update_asp" ] ; then
rm -rf /opt/app/tailscale/Advanced_Extensions_tailscale.asp
fi
if [ "$1" = "del" ] ; then
rm -rf /opt/app/tailscale/Advanced_Extensions_tailscale.asp /opt/bin/tailscale /opt/bin/tailscaled /opt/opt_backup/bin/tailscale /opt/opt_backup/bin/tailscaled
fi
initconfig
# 加载程序配置页面
if [ ! -f "/opt/app/tailscale/Advanced_Extensions_tailscale.asp" ] || [ ! -s "/opt/app/tailscale/Advanced_Extensions_tailscale.asp" ] ; then
wgetcurl.sh /opt/app/tailscale/Advanced_Extensions_tailscale.asp "$hiboyfile/Advanced_Extensions_tailscaleasp" "$hiboyfile2/Advanced_Extensions_tailscaleasp"
fi
umount /www/Advanced_Extensions_app11.asp
mount --bind /opt/app/tailscale/Advanced_Extensions_tailscale.asp /www/Advanced_Extensions_app11.asp
# 更新程序启动脚本
[ "$1" = "del" ] && /etc/storage/www_sh/tailscale del &
}
case $ACTION in
start)
tailscale_close
tailscale_check
;;
check)
tailscale_check
;;
stop)
tailscale_close
;;
updateapp11)
tailscale_restart o
if [ "$tailscale_enable" = "1" ] || [ "$tailscale_enable" = "2" ] || [ "$tailscale_enable" = "4" ] ; then
nvram set tailscale_status="updatetailscale"
logger -t "【tailscale】" "重启"
tailscale_restart
fi
[ "$tailscale_enable" = "0" ] && nvram set tailscale_v="" && logger -t "【tailscale】" "更新" && update_app del
;;
update_app)
update_app
;;
update_asp)
update_app update_asp
;;
keep)
#tailscale_check
tailscale_keep
;;
*)
tailscale_check
;;
esac
更多推荐
所有评论(0)