v1.0.0beta17.8
~优化了保存节点信息的方式,节省存储消耗 ~修复了部分情况下订阅链接/配置链接丢失的bug ~修复了部分情况下会连续下载两次核心的bug
This commit is contained in:
@@ -148,6 +148,7 @@ setport(){
|
|||||||
inputport
|
inputport
|
||||||
else
|
else
|
||||||
setconfig $xport $portx
|
setconfig $xport $portx
|
||||||
|
$xport=$portx
|
||||||
echo -e "\033[32m设置成功!!!\033[0m"
|
echo -e "\033[32m设置成功!!!\033[0m"
|
||||||
setport
|
setport
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -384,8 +384,6 @@ getsh(){
|
|||||||
echo -e "\033[32m管理脚本更新成功!\033[0m"
|
echo -e "\033[32m管理脚本更新成功!\033[0m"
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
exit;
|
exit;
|
||||||
else
|
|
||||||
update
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
getcpucore(){
|
getcpucore(){
|
||||||
@@ -397,7 +395,7 @@ getcpucore(){
|
|||||||
[ -n "$(echo $cputype | grep -E "linux.*86_64.*")" ] && cpucore="amd64"
|
[ -n "$(echo $cputype | grep -E "linux.*86_64.*")" ] && cpucore="amd64"
|
||||||
if [ -n "$(echo $cputype | grep -E "linux.*mips.*")" ];then
|
if [ -n "$(echo $cputype | grep -E "linux.*mips.*")" ];then
|
||||||
mipstype=$(echo -n I | hexdump -o | awk '{ print substr($2,6,1); exit}') #通过判断大小端判断mips或mipsle
|
mipstype=$(echo -n I | hexdump -o | awk '{ print substr($2,6,1); exit}') #通过判断大小端判断mips或mipsle
|
||||||
[ "$mipstype" = "1" ] && cpucore="mipsle-softfloat" || cpucore="mips-softfloat"
|
[ "$mipstype" != "1" ] && cpucore="mips-softfloat" || cpucore="mipsle-softfloat"
|
||||||
fi
|
fi
|
||||||
[ -n "$cpucore" ] && setconfig cpucore $cpucore
|
[ -n "$cpucore" ] && setconfig cpucore $cpucore
|
||||||
}
|
}
|
||||||
@@ -425,12 +423,17 @@ getcore(){
|
|||||||
#生成链接
|
#生成链接
|
||||||
corelink="$update_url/bin/$clashcore/clash-linux-$cpucore"
|
corelink="$update_url/bin/$clashcore/clash-linux-$cpucore"
|
||||||
#获取在线clash核心文件
|
#获取在线clash核心文件
|
||||||
|
echo -----------------------------------------------
|
||||||
|
echo 正在在线获取clash核心文件……
|
||||||
webget /tmp/clash.new $corelink
|
webget /tmp/clash.new $corelink
|
||||||
if [ "$result" != "200" ];then
|
if [ "$result" != "200" ];then
|
||||||
exit 1
|
echo -e "\033[31m核心文件下载失败!\033[0m"
|
||||||
else
|
else
|
||||||
|
echo -e "\033[32m$clashcore核心下载成功!\033[0m"
|
||||||
mv -f /tmp/clash.new $bindir/clash
|
mv -f /tmp/clash.new $bindir/clash
|
||||||
chmod 777 $bindir/clash #授予权限
|
chmod 777 $bindir/clash #授予权限
|
||||||
|
setconfig clashcore $clashcore
|
||||||
|
setconfig clashv $version
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
setcore(){
|
setcore(){
|
||||||
@@ -455,15 +458,16 @@ setcore(){
|
|||||||
read -p "请输入对应数字 > " num
|
read -p "请输入对应数字 > " num
|
||||||
if [ -z "$num" ]; then
|
if [ -z "$num" ]; then
|
||||||
errornum
|
errornum
|
||||||
update
|
|
||||||
elif [ "$num" = 0 ]; then
|
elif [ "$num" = 0 ]; then
|
||||||
update
|
i=
|
||||||
elif [ "$num" = 1 ]; then
|
elif [ "$num" = 1 ]; then
|
||||||
clashcore=clash
|
clashcore=clash
|
||||||
version=$clash_v
|
version=$clash_v
|
||||||
|
getcore
|
||||||
elif [ "$num" = 2 ]; then
|
elif [ "$num" = 2 ]; then
|
||||||
clashcore=clashpre
|
clashcore=clashpre
|
||||||
version=$clashpre_v
|
version=$clashpre_v
|
||||||
|
getcore
|
||||||
elif [ "$num" = 3 ]; then
|
elif [ "$num" = 3 ]; then
|
||||||
setcpucore
|
setcpucore
|
||||||
setcore
|
setcore
|
||||||
@@ -471,16 +475,6 @@ setcore(){
|
|||||||
errornum
|
errornum
|
||||||
update
|
update
|
||||||
fi
|
fi
|
||||||
echo -----------------------------------------------
|
|
||||||
echo 在线获取clash核心文件……
|
|
||||||
getcore
|
|
||||||
if [ "$?" = 0 ];then
|
|
||||||
echo -e "\033[32m$clashcore核心下载成功!\033[0m"
|
|
||||||
setconfig clashcore $clashcore
|
|
||||||
setconfig clashv $version
|
|
||||||
else
|
|
||||||
echo -e "\033[31m核心文件下载失败!\033[0m"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
getgeo(){
|
getgeo(){
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
@@ -631,14 +625,8 @@ getcrt(){
|
|||||||
echo -e "\033[31m检测到您的设备已经安装好根证书文件了!\033[0m"
|
echo -e "\033[31m检测到您的设备已经安装好根证书文件了!\033[0m"
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
read -p "是否覆盖安装?[1/0] > " res
|
read -p "是否覆盖安装?[1/0] > " res
|
||||||
if [ -z "$res" ]; then
|
if [ "$res" = 1 ]; then
|
||||||
update
|
|
||||||
elif [ "$res" = 1 ]; then
|
|
||||||
rm -rf $crtdir
|
rm -rf $crtdir
|
||||||
else
|
|
||||||
update
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
dblink="${update_url}/bin/ca-certificates.crt"
|
dblink="${update_url}/bin/ca-certificates.crt"
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo 正在连接服务器获取安装文件…………
|
echo 正在连接服务器获取安装文件…………
|
||||||
@@ -646,14 +634,15 @@ getcrt(){
|
|||||||
if [ "$result" != "200" ];then
|
if [ "$result" != "200" ];then
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[31m文件下载失败!\033[0m"
|
echo -e "\033[31m文件下载失败!\033[0m"
|
||||||
echo -----------------------------------------------
|
|
||||||
getcrt
|
|
||||||
else
|
else
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
mv -f /tmp/ca-certificates.crt $crtdir
|
mv -f /tmp/ca-certificates.crt $crtdir
|
||||||
echo -e "\033[32m证书安装成功!\033[0m"
|
echo -e "\033[32m证书安装成功!\033[0m"
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
setcrt(){
|
setcrt(){
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
@@ -664,9 +653,9 @@ setcrt(){
|
|||||||
read -p "确认安装?(1/0) > " res
|
read -p "确认安装?(1/0) > " res
|
||||||
|
|
||||||
if [ -z "$res" ];then
|
if [ -z "$res" ];then
|
||||||
update
|
errornum
|
||||||
elif [ "$res" = '0' ]; then
|
elif [ "$res" = '0' ]; then
|
||||||
update
|
i=
|
||||||
elif [ "$res" = '1' ]; then
|
elif [ "$res" = '1' ]; then
|
||||||
if [ -d /etc/ssl/certs ];then
|
if [ -d /etc/ssl/certs ];then
|
||||||
getcrt
|
getcrt
|
||||||
@@ -674,15 +663,19 @@ setcrt(){
|
|||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[33m设备可能未安装openssl或者证书文件目录不是/etc/ssl/certs,无法安装!\033[0m"
|
echo -e "\033[33m设备可能未安装openssl或者证书文件目录不是/etc/ssl/certs,无法安装!\033[0m"
|
||||||
sleep 1
|
sleep 1
|
||||||
update
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
errornum
|
errornum
|
||||||
update
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
setserver(){
|
setserver(){
|
||||||
|
saveserver(){
|
||||||
|
#写入mark文件
|
||||||
|
setconfig update_url \'$update_url\'
|
||||||
|
echo -----------------------------------------------
|
||||||
|
echo -e "\033[32m源地址更新成功!\033[0m"
|
||||||
|
release_new=""
|
||||||
|
}
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[30;47m您可以在此处切换在线更新时使用的资源地址\033[0m"
|
echo -e "\033[30;47m您可以在此处切换在线更新时使用的资源地址\033[0m"
|
||||||
echo -e "当前源:\033[4;32m$update_url\033[0m"
|
echo -e "当前源:\033[4;32m$update_url\033[0m"
|
||||||
@@ -696,20 +689,23 @@ setserver(){
|
|||||||
read -p "请输入对应数字 > " num
|
read -p "请输入对应数字 > " num
|
||||||
if [ -z "$num" ]; then
|
if [ -z "$num" ]; then
|
||||||
errornum
|
errornum
|
||||||
update
|
|
||||||
elif [ "$num" = 1 ]; then
|
elif [ "$num" = 1 ]; then
|
||||||
update_url='https://cdn.jsdelivr.net/gh/juewuy/ShellClash@master'
|
update_url='https://cdn.jsdelivr.net/gh/juewuy/ShellClash@master'
|
||||||
|
saveserver
|
||||||
elif [ "$num" = 2 ]; then
|
elif [ "$num" = 2 ]; then
|
||||||
update_url='https://cdn.jsdelivr.net/gh/juewuy/ShellClash'
|
update_url='https://cdn.jsdelivr.net/gh/juewuy/ShellClash'
|
||||||
|
saveserver
|
||||||
elif [ "$num" = 3 ]; then
|
elif [ "$num" = 3 ]; then
|
||||||
update_url='https://raw.githubusercontent.com/juewuy/ShellClash/master'
|
update_url='https://raw.githubusercontent.com/juewuy/ShellClash/master'
|
||||||
|
saveserver
|
||||||
elif [ "$num" = 5 ]; then
|
elif [ "$num" = 5 ]; then
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
read -p "请输入个人源路径 > " update_url
|
read -p "请输入个人源路径 > " update_url
|
||||||
if [ -z "$update_url" ];then
|
if [ -z "$update_url" ];then
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[31m取消输入,返回上级菜单\033[0m"
|
echo -e "\033[31m取消输入,返回上级菜单\033[0m"
|
||||||
update
|
else
|
||||||
|
saveserver
|
||||||
fi
|
fi
|
||||||
elif [ "$num" = 6 ]; then
|
elif [ "$num" = 6 ]; then
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
@@ -723,7 +719,7 @@ setserver(){
|
|||||||
elif [ $num -le $(cat /tmp/clashrelease | awk 'END{print NR}') 2>/dev/null ]; then
|
elif [ $num -le $(cat /tmp/clashrelease | awk 'END{print NR}') 2>/dev/null ]; then
|
||||||
release_version=$(cat /tmp/clashrelease | awk '{print $1}' | sed -n "$num"p)
|
release_version=$(cat /tmp/clashrelease | awk '{print $1}' | sed -n "$num"p)
|
||||||
update_url="https://cdn.jsdelivr.net/gh/juewuy/ShellClash@$release_version"
|
update_url="https://cdn.jsdelivr.net/gh/juewuy/ShellClash@$release_version"
|
||||||
echo -e "\033[32m设置成功!\033[0m"
|
saveserver
|
||||||
else
|
else
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[31m输入有误,请重新输入!\033[0m"
|
echo -e "\033[31m输入有误,请重新输入!\033[0m"
|
||||||
@@ -733,14 +729,7 @@ setserver(){
|
|||||||
update_url='http://192.168.31.31:8080/ShellClash'
|
update_url='http://192.168.31.31:8080/ShellClash'
|
||||||
else
|
else
|
||||||
errornum
|
errornum
|
||||||
update
|
|
||||||
fi
|
fi
|
||||||
#写入mark文件
|
|
||||||
setconfig update_url \'$update_url\'
|
|
||||||
echo -----------------------------------------------
|
|
||||||
echo -e "\033[32m源地址更新成功!\033[0m"
|
|
||||||
release_new=""
|
|
||||||
update
|
|
||||||
}
|
}
|
||||||
checkupdate(){
|
checkupdate(){
|
||||||
if [ -z "$release_new" ];then
|
if [ -z "$release_new" ];then
|
||||||
@@ -812,6 +801,7 @@ update(){
|
|||||||
|
|
||||||
elif [ "$num" = 7 ]; then
|
elif [ "$num" = 7 ]; then
|
||||||
setserver
|
setserver
|
||||||
|
update
|
||||||
|
|
||||||
elif [ "$num" = 8 ]; then
|
elif [ "$num" = 8 ]; then
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
@@ -860,12 +850,12 @@ userguide(){
|
|||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[33m是否需要代理UDP流量(主要用于游戏)? \033[0m"
|
echo -e "\033[33m是否需要代理UDP流量(主要用于游戏)? \033[0m"
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e " 1 \033[0m不代理UDP流量(可能会导致一部分游戏/应用无法连接)\033[0m"
|
echo -e " 1 \033[33m不代理UDP流量\033[0m(可能会导致一部分游戏/应用无法连接)"
|
||||||
modinfo tun >/dev/null 2>&1 && [ "$?" = 0 ] && \
|
modinfo tun >/dev/null 2>&1 && [ "$?" = 0 ] && \
|
||||||
echo -e " 2 \033[0m使用Tun虚拟网卡代理UDP流量(更低的延迟但更多的CPU消耗)\033[0m" || \
|
echo -e " 2 \033[32m使用Tun虚拟网卡\033[0m代理UDP流量(更低的延迟但更多的CPU消耗)" || \
|
||||||
echo -e " - \033[0m使用Tun模式(你的设备不支持此模式,如为虚拟机运行请调整虚拟网卡设置)\033[0m"
|
echo -e " - \033[0m使用Tun模式(你的设备不支持此模式,如为虚拟机运行请调整虚拟网卡设置)\033[0m"
|
||||||
[ -n "$(iptables -j TPROXY 2>&1 | grep 'on-port')" ] && \
|
[ -n "$(iptables -j TPROXY 2>&1 | grep 'on-port')" ] && \
|
||||||
echo -e " 3 \033[0m使用Tproxy模式代理UDP流量(较低CPU消耗但更高的延迟)033[0m"
|
echo -e " 3 \033[32m使用Tproxy模式\033[0m代理UDP流量(较低CPU消耗但相对高的延迟)"
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
read -p "请输入对应数字 > " num
|
read -p "请输入对应数字 > " num
|
||||||
if [ -z "$num" ] || [ "$num" -gt 4 ];then
|
if [ -z "$num" ] || [ "$num" -gt 4 ];then
|
||||||
|
|||||||
@@ -37,7 +37,9 @@ setconfig(){
|
|||||||
echo "${1}=${2}" >> $configpath
|
echo "${1}=${2}" >> $configpath
|
||||||
}
|
}
|
||||||
compare(){
|
compare(){
|
||||||
if command -v cmp >/dev/null 2>&1; then
|
if [ ! -f $1 -o ! -f $2 ];then
|
||||||
|
return 1
|
||||||
|
elif command -v cmp >/dev/null 2>&1;then
|
||||||
cmp -s $1 $2
|
cmp -s $1 $2
|
||||||
else
|
else
|
||||||
[ "$(cat $1)" = "$(cat $2)" ] && return 0 || return 1
|
[ "$(cat $1)" = "$(cat $2)" ] && return 0 || return 1
|
||||||
|
|||||||
Reference in New Issue
Block a user