mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-10 23:41:22 +00:00
refactor(set_shadowsocks): replace recursion with while loop
This commit is contained in:
@@ -364,128 +364,129 @@ EOF
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
set_shadowsocks(){
|
set_shadowsocks() {
|
||||||
echo "-----------------------------------------------"
|
while true; do
|
||||||
echo -e "\033[31m注意:\033[0m设置的端口会添加到公网访问防火墙并自动放行!\n 脚本只提供基础功能,更多需求请用自定义配置文件功能!"
|
echo "-----------------------------------------------"
|
||||||
echo -e " \033[31m切勿用于搭建违法翻墙节点,违者后果自负!\033[0m"
|
echo -e "\033[31m注意:\033[0m设置的端口会添加到公网访问防火墙并自动放行!\n 脚本只提供基础功能,更多需求请用自定义配置文件功能!"
|
||||||
echo "-----------------------------------------------"
|
echo -e " \033[31m切勿用于搭建违法翻墙节点,违者后果自负!\033[0m"
|
||||||
echo -e " 1 \033[32m启用/关闭\033[0mShadowSocks入站 \033[32m$sss_service\033[0m"
|
echo "-----------------------------------------------"
|
||||||
echo "-----------------------------------------------"
|
echo -e " 1 \033[32m启用/关闭\033[0mShadowSocks入站 \033[32m$sss_service\033[0m"
|
||||||
echo -e " 2 设置\033[36m监听端口\033[0m: \033[36m$sss_port\033[0m"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 3 选择\033[33m加密协议\033[0m: \033[33m$sss_cipher\033[0m"
|
echo -e " 2 设置\033[36m监听端口\033[0m: \033[36m$sss_port\033[0m"
|
||||||
echo -e " 4 设置\033[36mpassword\033[0m: \033[36m$sss_pwd\033[0m"
|
echo -e " 3 选择\033[33m加密协议\033[0m: \033[33m$sss_cipher\033[0m"
|
||||||
gen_base64 1 >/dev/null 2>&1 &&
|
echo -e " 4 设置\033[36mpassword\033[0m: \033[36m$sss_pwd\033[0m"
|
||||||
echo -e " 5 一键生成分享链接"
|
gen_base64 1 >/dev/null 2>&1 &&
|
||||||
echo -e " 0 返回上级菜单 \033[0m"
|
echo -e " 5 一键生成分享链接"
|
||||||
echo "-----------------------------------------------"
|
echo -e " 0 返回上级菜单 \033[0m"
|
||||||
read -p "请输入对应数字 > " num
|
echo "-----------------------------------------------"
|
||||||
case "$num" in
|
read -r -p "请输入对应数字 > " num
|
||||||
0) ;;
|
case "$num" in
|
||||||
1)
|
"" | 0)
|
||||||
if [ "$sss_service" = ON ];then
|
break
|
||||||
sss_service=OFF
|
;;
|
||||||
setconfig sss_service "$sss_service"
|
1)
|
||||||
else
|
if [ "$sss_service" = ON ]; then
|
||||||
if [ -n "$sss_port" ] && [ -n "$sss_cipher" ] && [ -n "$sss_pwd" ];then
|
sss_service=OFF
|
||||||
sss_service=ON
|
setconfig sss_service "$sss_service"
|
||||||
setconfig sss_service "$sss_service"
|
else
|
||||||
else
|
if [ -n "$sss_port" ] && [ -n "$sss_cipher" ] && [ -n "$sss_pwd" ]; then
|
||||||
echo -e "\033[31m请先完成必选设置!\033[0m"
|
sss_service=ON
|
||||||
sleep 1
|
setconfig sss_service "$sss_service"
|
||||||
fi
|
else
|
||||||
fi
|
echo -e "\033[31m请先完成必选设置!\033[0m"
|
||||||
set_shadowsocks
|
sleep 1
|
||||||
;;
|
fi
|
||||||
2)
|
fi
|
||||||
read -p "请输入端口号(输入0删除) > " text
|
;;
|
||||||
if [ "$text" = 0 ];then
|
2)
|
||||||
sss_port=''
|
read -r -p "请输入端口号(输入0删除) > " text
|
||||||
setconfig sss_port "" "$GT_CFG_PATH"
|
if [ "$text" = 0 ]; then
|
||||||
elif check_port "$text"; then
|
sss_port=''
|
||||||
sss_port="$text"
|
setconfig sss_port "" "$GT_CFG_PATH"
|
||||||
setconfig sss_port "$text" "$GT_CFG_PATH"
|
elif check_port "$text"; then
|
||||||
else
|
sss_port="$text"
|
||||||
sleep 1
|
setconfig sss_port "$text" "$GT_CFG_PATH"
|
||||||
fi
|
else
|
||||||
set_shadowsocks
|
sleep 1
|
||||||
;;
|
fi
|
||||||
3)
|
;;
|
||||||
echo "-----------------------------------------------"
|
3)
|
||||||
echo -e " 1 \033[32mxchacha20-ietf-poly1305\033[0m"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 2 \033[32mchacha20-ietf-poly1305\033[0m"
|
echo -e " 1 \033[32mxchacha20-ietf-poly1305\033[0m"
|
||||||
echo -e " 3 \033[32maes-128-gcm\033[0m"
|
echo -e " 2 \033[32mchacha20-ietf-poly1305\033[0m"
|
||||||
echo -e " 4 \033[32maes-256-gcm\033[0m"
|
echo -e " 3 \033[32maes-128-gcm\033[0m"
|
||||||
gen_random 1 >/dev/null && {
|
echo -e " 4 \033[32maes-256-gcm\033[0m"
|
||||||
echo "-----------------------------------------------"
|
gen_random 1 >/dev/null && {
|
||||||
echo -e "\033[31m注意:\033[0m2022系列加密必须使用随机生成的password!"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 5 \033[32m2022-blake3-chacha20-poly1305\033[0m"
|
echo -e "\033[31m注意:\033[0m2022系列加密必须使用随机生成的password!"
|
||||||
echo -e " 6 \033[32m2022-blake3-aes-128-gcm\033[0m"
|
echo -e " 5 \033[32m2022-blake3-chacha20-poly1305\033[0m"
|
||||||
echo -e " 7 \033[32m2022-blake3-aes-256-gcm\033[0m"
|
echo -e " 6 \033[32m2022-blake3-aes-128-gcm\033[0m"
|
||||||
}
|
echo -e " 7 \033[32m2022-blake3-aes-256-gcm\033[0m"
|
||||||
echo "-----------------------------------------------"
|
}
|
||||||
echo -e " 0 返回上级菜单"
|
echo "-----------------------------------------------"
|
||||||
read -p "请选择要使用的加密协议 > " num
|
echo -e " 0 返回上级菜单"
|
||||||
case "$num" in
|
read -r -p "请选择要使用的加密协议 > " num
|
||||||
1)
|
case "$num" in
|
||||||
sss_cipher=xchacha20-ietf-poly1305
|
"" | 1)
|
||||||
sss_pwd=$(gen_random 16)
|
sss_cipher=xchacha20-ietf-poly1305
|
||||||
;;
|
sss_pwd=$(gen_random 16)
|
||||||
2)
|
;;
|
||||||
sss_cipher=chacha20-ietf-poly1305
|
2)
|
||||||
sss_pwd=$(gen_random 16)
|
sss_cipher=chacha20-ietf-poly1305
|
||||||
;;
|
sss_pwd=$(gen_random 16)
|
||||||
3)
|
;;
|
||||||
sss_cipher=aes-128-gcm
|
3)
|
||||||
sss_pwd=$(gen_random 16)
|
sss_cipher=aes-128-gcm
|
||||||
;;
|
sss_pwd=$(gen_random 16)
|
||||||
4)
|
;;
|
||||||
sss_cipher=aes-256-gcm
|
4)
|
||||||
sss_pwd=$(gen_random 16)
|
sss_cipher=aes-256-gcm
|
||||||
;;
|
sss_pwd=$(gen_random 16)
|
||||||
5)
|
;;
|
||||||
sss_cipher=2022-blake3-chacha20-poly1305
|
5)
|
||||||
sss_pwd=$(gen_random 32)
|
sss_cipher=2022-blake3-chacha20-poly1305
|
||||||
;;
|
sss_pwd=$(gen_random 32)
|
||||||
6)
|
;;
|
||||||
sss_cipher=2022-blake3-aes-128-gcm
|
6)
|
||||||
sss_pwd=$(gen_random 16)
|
sss_cipher=2022-blake3-aes-128-gcm
|
||||||
;;
|
sss_pwd=$(gen_random 16)
|
||||||
7)
|
;;
|
||||||
sss_cipher=2022-blake3-aes-256-gcm
|
7)
|
||||||
sss_pwd=$(gen_random 32)
|
sss_cipher=2022-blake3-aes-256-gcm
|
||||||
;;
|
sss_pwd=$(gen_random 32)
|
||||||
*)
|
;;
|
||||||
;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
setconfig sss_cipher "$sss_cipher" "$GT_CFG_PATH"
|
setconfig sss_cipher "$sss_cipher" "$GT_CFG_PATH"
|
||||||
setconfig sss_pwd "$sss_pwd" "$GT_CFG_PATH"
|
setconfig sss_pwd "$sss_pwd" "$GT_CFG_PATH"
|
||||||
set_shadowsocks
|
;;
|
||||||
;;
|
4)
|
||||||
4)
|
if echo "$sss_cipher" | grep -q '2022-blake3'; then
|
||||||
if echo "$sss_cipher" |grep -q '2022-blake3';then
|
echo -e "\033[31m注意:\033[0m2022系列加密必须使用脚本随机生成的password!"
|
||||||
echo -e "\033[31m注意:\033[0m2022系列加密必须使用脚本随机生成的password!"
|
sleep 1
|
||||||
sleep 1
|
else
|
||||||
else
|
read -r -p "请输入秘钥(输入0删除) > " text
|
||||||
read -p "请输入秘钥(输入0删除) > " text
|
[ "$text" = 0 ] && sss_pwd='' || sss_pwd="$text"
|
||||||
[ "$text" = 0 ] && sss_pwd='' || sss_pwd="$text"
|
setconfig sss_pwd "$text" "$GT_CFG_PATH"
|
||||||
setconfig sss_pwd "$text" "$GT_CFG_PATH"
|
fi
|
||||||
fi
|
;;
|
||||||
set_shadowsocks
|
5)
|
||||||
;;
|
read -r -p "请输入本机公网IP(4/6)或域名 > " text
|
||||||
5)
|
if [ -n "$text" ] && [ -n "$sss_port" ] && [ -n "$sss_cipher" ] && [ -n "$sss_pwd" ]; then
|
||||||
read -p "请输入本机公网IP(4/6)或域名 > " text
|
ss_link="ss://$(gen_base64 "$sss_cipher":"$sss_pwd")@${text}:${sss_port}#ShellCrash_ss_in"
|
||||||
if [ -n "$text" ] && [ -n "$sss_port" ] && [ -n "$sss_cipher" ] && [ -n "$sss_pwd" ];then
|
echo "-----------------------------------------------"
|
||||||
ss_link="ss://$(gen_base64 "$sss_cipher":"$sss_pwd")@${text}:${sss_port}#ShellCrash_ss_in"
|
echo -e "你的分享链接是(请勿随意分享给他人):\n\033[32m$ss_link\033[0m"
|
||||||
echo "-----------------------------------------------"
|
else
|
||||||
echo -e "你的分享链接是(请勿随意分享给他人):\n\033[32m$ss_link\033[0m"
|
echo -e "\033[31m请先完成必选设置!\033[0m"
|
||||||
else
|
fi
|
||||||
echo -e "\033[31m请先完成必选设置!\033[0m"
|
sleep 1
|
||||||
fi
|
;;
|
||||||
sleep 1
|
*)
|
||||||
set_shadowsocks
|
errornum
|
||||||
;;
|
sleep 1
|
||||||
*) errornum ;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# 自定义端点
|
# 自定义端点
|
||||||
|
|||||||
Reference in New Issue
Block a user