mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-12 00:11:31 +00:00
Merge pull request #1114 from sofia-riese/patch-4
refactor(set_adv_config): replace recursion with while loop
This commit is contained in:
@@ -281,125 +281,165 @@ set_redir_mod() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
set_adv_config() { #端口设置
|
inputport() {
|
||||||
. "$CFG_PATH" >/dev/null
|
read -p "请输入端口号(1-65535) > " portx
|
||||||
[ -z "$secret" ] && secret=未设置
|
. "$CRASHDIR"/menus/check_port.sh # 加载测试函数
|
||||||
[ -z "$table" ] && table=100
|
if check_port "$portx"; then
|
||||||
[ -z "$authentication" ] && auth=未设置 || auth=******
|
setconfig "$xport" "$portx"
|
||||||
inputport() {
|
echo -e "\033[32m设置成功!!!\033[0m"
|
||||||
read -p "请输入端口号(1-65535) > " portx
|
return 0
|
||||||
. "$CRASHDIR"/menus/check_port.sh #加载测试函数
|
else
|
||||||
if check_port "$portx"; then
|
echo -e "\033[31m设置失败!!!\033[0m"
|
||||||
setconfig "$xport" "$portx"
|
sleep 1
|
||||||
echo -e "\033[32m设置成功!!!\033[0m"
|
return 1
|
||||||
set_adv_config
|
fi
|
||||||
else
|
}
|
||||||
sleep 1
|
|
||||||
fi
|
# 端口设置
|
||||||
}
|
set_adv_config() {
|
||||||
echo "-----------------------------------------------"
|
while true; do
|
||||||
echo -e " 1 修改Http/Sock5端口: \033[36m$mix_port\033[0m"
|
. "$CFG_PATH" >/dev/null
|
||||||
echo -e " 2 设置Http/Sock5密码: \033[36m$auth\033[0m"
|
[ -z "$secret" ] && secret=未设置
|
||||||
echo -e " 3 修改Redir/Tproxy端口:\033[36m$redir_port,$((redir_port + 1))\033[0m"
|
[ -z "$table" ] && table=100
|
||||||
echo -e " 4 修改DNS监听端口: \033[36m$dns_port\033[0m"
|
[ -z "$authentication" ] && auth=未设置 || auth=******
|
||||||
echo -e " 5 修改面板访问端口: \033[36m$db_port\033[0m"
|
|
||||||
echo -e " 6 设置面板访问密码: \033[36m$secret\033[0m"
|
|
||||||
echo -e " 8 自定义本机host地址: \033[36m$host\033[0m"
|
|
||||||
echo -e " 9 自定义路由表: \033[36m$table,$((table + 1))\033[0m"
|
|
||||||
echo -e " 0 返回上级菜单"
|
|
||||||
read -p "请输入对应数字 > " num
|
|
||||||
case "$num" in
|
|
||||||
0) ;;
|
|
||||||
1)
|
|
||||||
xport=mix_port
|
|
||||||
inputport
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "格式必须是\033[32m 用户名:密码 \033[0m的形式,注意用小写冒号分隔!"
|
echo -e " 1 修改Http/Sock5端口: \033[36m$mix_port\033[0m"
|
||||||
echo -e "请尽量不要使用特殊符号!避免产生未知错误!"
|
echo -e " 2 设置Http/Sock5密码: \033[36m$auth\033[0m"
|
||||||
echo "输入 0 删除密码"
|
echo -e " 3 修改Redir/Tproxy端口:\033[36m$redir_port,$((redir_port + 1))\033[0m"
|
||||||
echo "-----------------------------------------------"
|
echo -e " 4 修改DNS监听端口: \033[36m$dns_port\033[0m"
|
||||||
read -p "请输入Http/Sock5用户名及密码 > " input
|
echo -e " 5 修改面板访问端口: \033[36m$db_port\033[0m"
|
||||||
if [ "$input" = "0" ]; then
|
echo -e " 6 设置面板访问密码: \033[36m$secret\033[0m"
|
||||||
authentication=""
|
echo -e " 8 自定义本机host地址: \033[36m$host\033[0m"
|
||||||
setconfig authentication
|
echo -e " 9 自定义路由表: \033[36m$table,$((table + 1))\033[0m"
|
||||||
echo 密码已移除!
|
echo -e " 0 返回上级菜单"
|
||||||
else
|
read -p "请输入对应数字 > " num
|
||||||
if [ "$local_proxy" = "ON" -a "$local_type" = "环境变量" ]; then
|
case "$num" in
|
||||||
echo "-----------------------------------------------"
|
"" | 0)
|
||||||
echo -e "\033[33m请先禁用本机劫持功能或使用增强模式!\033[0m"
|
break
|
||||||
sleep 1
|
;;
|
||||||
|
1)
|
||||||
|
xport=mix_port
|
||||||
|
inputport
|
||||||
|
ret=$?
|
||||||
|
if [ "$ret" -eq 1 ]; then
|
||||||
|
break
|
||||||
else
|
else
|
||||||
authentication=$(echo $input | grep :)
|
continue
|
||||||
if [ -n "$authentication" ]; then
|
fi
|
||||||
setconfig authentication "'$authentication'"
|
;;
|
||||||
echo -e "\033[32m设置成功!!!\033[0m"
|
2)
|
||||||
|
echo "-----------------------------------------------"
|
||||||
|
echo -e "格式必须是\033[32m 用户名:密码 \033[0m的形式,注意用小写冒号分隔!"
|
||||||
|
echo -e "请尽量不要使用特殊符号!避免产生未知错误!"
|
||||||
|
echo "输入 0 删除密码"
|
||||||
|
echo "-----------------------------------------------"
|
||||||
|
read -p "请输入Http/Sock5用户名及密码 > " input
|
||||||
|
if [ "$input" = "0" ]; then
|
||||||
|
authentication=""
|
||||||
|
setconfig authentication
|
||||||
|
echo "密码已移除!"
|
||||||
|
else
|
||||||
|
if [ "$local_proxy" = "ON" ] && [ "$local_type" = "环境变量" ]; then
|
||||||
|
echo "-----------------------------------------------"
|
||||||
|
echo -e "\033[33m请先禁用本机劫持功能或使用增强模式!\033[0m"
|
||||||
|
sleep 1
|
||||||
else
|
else
|
||||||
echo -e "\033[31m输入有误,请重新输入!\033[0m"
|
authentication=$(echo "$input" | grep :)
|
||||||
|
if [ -n "$authentication" ]; then
|
||||||
|
setconfig authentication "'$authentication'"
|
||||||
|
echo -e "\033[32m设置成功!!!\033[0m"
|
||||||
|
else
|
||||||
|
echo -e "\033[31m输入有误,请重新输入!\033[0m"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
set_adv_config
|
ret=$?
|
||||||
;;
|
if [ "$ret" -eq 1 ]; then
|
||||||
3)
|
break
|
||||||
xport=redir_port
|
else
|
||||||
inputport
|
continue
|
||||||
;;
|
fi
|
||||||
4)
|
;;
|
||||||
xport=dns_port
|
3)
|
||||||
inputport
|
xport=redir_port
|
||||||
;;
|
inputport
|
||||||
5)
|
|
||||||
xport=db_port
|
ret=$?
|
||||||
inputport
|
if [ "$ret" -eq 1 ]; then
|
||||||
;;
|
break
|
||||||
6)
|
else
|
||||||
read -p "请输入面板访问密码(输入0删除密码) > " secret
|
continue
|
||||||
if [ -n "$secret" ]; then
|
fi
|
||||||
[ "$secret" = "0" ] && secret=""
|
;;
|
||||||
setconfig secret $secret
|
4)
|
||||||
echo -e "\033[32m设置成功!!!\033[0m"
|
xport=dns_port
|
||||||
fi
|
inputport
|
||||||
set_adv_config
|
|
||||||
;;
|
ret=$?
|
||||||
8)
|
if [ "$ret" -eq 1 ]; then
|
||||||
echo "-----------------------------------------------"
|
break
|
||||||
echo -e "\033[33m如果你的局域网网段不是192.168.x或172.16.x或10.x开头,请务必修改!\033[0m"
|
else
|
||||||
echo -e "\033[31m设置后如本机host地址有变动,请务必重新修改!\033[0m"
|
continue
|
||||||
echo "-----------------------------------------------"
|
fi
|
||||||
read -p "请输入自定义host地址(输入0移除自定义host) > " host
|
;;
|
||||||
if [ "$host" = "0" ]; then
|
5)
|
||||||
host=""
|
xport=db_port
|
||||||
setconfig host "$host"
|
inputport
|
||||||
echo -e "\033[32m已经移除自定义host地址,请重新运行脚本以自动获取host!!!\033[0m"
|
|
||||||
exit 0
|
ret=$?
|
||||||
elif [ -n "$(echo $host | grep -E -o '\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>){2}\.\<([1-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])\>')" ]; then
|
if [ "$ret" -eq 1 ]; then
|
||||||
setconfig host "$host"
|
break
|
||||||
echo -e "\033[32m设置成功!!!\033[0m"
|
else
|
||||||
else
|
continue
|
||||||
host=""
|
fi
|
||||||
echo -e "\033[31m输入错误,请仔细核对!!!\033[0m"
|
;;
|
||||||
fi
|
6)
|
||||||
sleep 1
|
read -p "请输入面板访问密码(输入0删除密码) > " secret
|
||||||
set_adv_config
|
if [ -n "$secret" ]; then
|
||||||
;;
|
[ "$secret" = "0" ] && secret=""
|
||||||
9)
|
setconfig secret "$secret"
|
||||||
echo "-----------------------------------------------"
|
echo -e "\033[32m设置成功!!!\033[0m"
|
||||||
echo -e "\033[33m仅限Tproxy、Tun或混合模式路由表出现冲突时才需要设置!\033[0m"
|
fi
|
||||||
read -p "请输入路由表地址(不明勿动!建议102-125之间) > " table
|
;;
|
||||||
if [ -n "$table" ]; then
|
8)
|
||||||
[ "$table" = "0" ] && table="100"
|
echo "-----------------------------------------------"
|
||||||
setconfig table "$table"
|
echo -e "\033[33m如果你的局域网网段不是192.168.x或172.16.x或10.x开头,请务必修改!\033[0m"
|
||||||
echo -e "\033[32m设置成功!!!\033[0m"
|
echo -e "\033[31m设置后如本机host地址有变动,请务必重新修改!\033[0m"
|
||||||
fi
|
echo "-----------------------------------------------"
|
||||||
set_adv_config
|
read -p "请输入自定义host地址(输入0移除自定义host) > " host
|
||||||
;;
|
if [ "$host" = "0" ]; then
|
||||||
*)
|
host=""
|
||||||
errornum
|
setconfig host "$host"
|
||||||
;;
|
echo -e "\033[32m已经移除自定义host地址,请重新运行脚本以自动获取host!!!\033[0m"
|
||||||
esac
|
exit 0
|
||||||
|
elif [ -n "$(echo "$host" | grep -E -o '\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>){2}\.\<([1-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])\>')" ]; then
|
||||||
|
setconfig host "$host"
|
||||||
|
echo -e "\033[32m设置成功!!!\033[0m"
|
||||||
|
else
|
||||||
|
host=""
|
||||||
|
echo -e "\033[31m输入错误,请仔细核对!!!\033[0m"
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
;;
|
||||||
|
9)
|
||||||
|
echo "-----------------------------------------------"
|
||||||
|
echo -e "\033[33m仅限Tproxy、Tun或混合模式路由表出现冲突时才需要设置!\033[0m"
|
||||||
|
read -p "请输入路由表地址(不明勿动!建议102-125之间) > " table
|
||||||
|
if [ -n "$table" ]; then
|
||||||
|
[ "$table" = "0" ] && table="100"
|
||||||
|
setconfig table "$table"
|
||||||
|
echo -e "\033[32m设置成功!!!\033[0m"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
errornum
|
||||||
|
sleep 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
set_firewall_area() { #路由范围设置
|
set_firewall_area() { #路由范围设置
|
||||||
[ -z "$vm_redir" ] && vm_redir='OFF'
|
[ -z "$vm_redir" ] && vm_redir='OFF'
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
|
|||||||
Reference in New Issue
Block a user