mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-11 16:01:28 +00:00
chore: invoke the common.sh componen and UI adjustments
This commit is contained in:
@@ -28,11 +28,11 @@ settings() {
|
||||
}
|
||||
content_line "8) $SET_MENU_IPV6\t\033[36m$ipv6_redir\033[0m"
|
||||
separator_line "-"
|
||||
content_line "a) \033[31m$SET_MENU_RESET\033[0m"
|
||||
content_line "b) \033[36m$SET_MENU_LANG\033[0m"
|
||||
content_line "c) \033[33m$SET_MENU_UI\033[0m"
|
||||
content_line "0) $COMMON_BACK"
|
||||
separator_line "="
|
||||
btm_box "a) \033[31m$SET_MENU_RESET\033[0m" \
|
||||
"b) \033[36m$SET_MENU_LANG\033[0m" \
|
||||
"c) \033[33m$SET_MENU_UI\033[0m" \
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "$COMMON_INPUT> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -204,7 +204,7 @@ settings() {
|
||||
;;
|
||||
b)
|
||||
comp_box "1) 简体中文" \
|
||||
"2) English" \
|
||||
"2) English" \
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "$COMMON_INPUT> " num
|
||||
@@ -280,12 +280,11 @@ set_redir_mod() {
|
||||
content_line "6) \033[36mT&U旁路转发\033[0m: 转发TCP&UDP流量至旁路由"
|
||||
content_line ""
|
||||
}
|
||||
content_line "7) $SET_FW_AREA:\t\033[47;30m$firewall_area_dsc\033[0m"
|
||||
content_line "8) $SET_VM_REDIR:\t\033[47;30m$vm_redir\033[0m"
|
||||
content_line "9) $SET_FW_SWITCH:\t\033[47;30m$firewall_mod\033[0m"
|
||||
content_line ""
|
||||
content_line "0) $COMMON_BACK"
|
||||
separator_line "="
|
||||
btm_box "7) $SET_FW_AREA:\t\033[47;30m$firewall_area_dsc\033[0m" \
|
||||
"8) $SET_VM_REDIR:\t\033[47;30m$vm_redir\033[0m" \
|
||||
"9) $SET_FW_SWITCH:\t\033[47;30m$firewall_mod\033[0m" \
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "$COMMON_INPUT> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
|
||||
@@ -43,10 +43,9 @@ setboot() {
|
||||
content_line "3) 设置自启延时: \033[36m$(printf '%-7s' "$delay")\033[0m ———用于解决自启后服务受限"
|
||||
content_line "4) 启用小闪存模式: \033[36m$(printf '%-4s' "$mini_clash")\033[0m ———用于闪存空间不足的设备"
|
||||
[ "${BINDIR}" != "$CRASHDIR" ] && content_line "5) 设置小闪存目录: \033[36m${BINDIR}\033[0m"
|
||||
content_line "6) 自启网络检查: \033[36m$(printf '%-4s' "$network_check")\033[0m ———禁用则跳过自启时网络检查"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "6) 自启网络检查: \033[36m$(printf '%-4s' "$network_check")\033[0m ———禁用则跳过自启时网络检查" \
|
||||
"" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -216,9 +215,8 @@ setboot() {
|
||||
content_line "当前\033[33m已启用\033[0m自启网络检查,是否确认禁用?"
|
||||
fi
|
||||
separator_line "-"
|
||||
content_line "1) 是"
|
||||
content_line "0) 否,返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "1) 是" \
|
||||
"0) 否,返回上级菜单"
|
||||
read -r -p "请输入对应标号> " res
|
||||
if [ "$res" = '1' ]; then
|
||||
if [ "$network_check" = "OFF" ]; then
|
||||
|
||||
@@ -88,9 +88,8 @@ task_user_del() {
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
if [ "$num" = 0 ]; then
|
||||
break
|
||||
@@ -114,9 +113,8 @@ task_add() {
|
||||
# 输出任务列表
|
||||
list=$(cat "$CRASHDIR"/task/task.list "$CRASHDIR"/task/task.user 2>/dev/null | grep -Ev '^(#|$)' | awk -F '#' '{print $3}')
|
||||
list_box "$list"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
0)
|
||||
@@ -179,7 +177,6 @@ task_type() {
|
||||
"输入 1~5 代表\033[36m周一至周五\033[0m运行"
|
||||
read -r -p "在每周哪天执行?> " week
|
||||
# week=`echo ${week/7/0}` # 把7换成0
|
||||
echo
|
||||
read -r -p "想在该日的具体哪个小时执行?(0~23)> " hour
|
||||
cron_time="在每周$week的$hour点整"
|
||||
# cron_time=`echo ${cron_time/周0/周日}` # 把0换成日
|
||||
@@ -189,7 +186,6 @@ task_type() {
|
||||
comp_box "输入 1,7,15 代表\033[36m每到1,7,15点\033[0m运行" \
|
||||
"输入 6~18 代表\033[36m早6点至晚18点间每小时\033[0m运行"
|
||||
read -r -p "想在每日的具体哪个小时执行?(0~23)> " hour
|
||||
echo
|
||||
read -r -p "想在具体哪分钟执行?(0~59的整数)> " min
|
||||
cron_time="在每日的$hour点$min分"
|
||||
[ -n "$min" ] && [ -n "$hour" ] && set_cron
|
||||
|
||||
@@ -34,13 +34,13 @@ set_core_config() {
|
||||
list_box "$list"
|
||||
separator_line "-"
|
||||
}
|
||||
content_line "a) \033[32m添加提供者\033[0m(支持订阅/分享链接及本地文件)"
|
||||
content_line "b) \033[36m本地生成配置文件\033[0m"
|
||||
content_line "c) \033[33m在线生成配置文件\033[0m"
|
||||
content_line "d) \033[31m清空提供者列表\033[0m"
|
||||
content_line "e) \033[36m自定义配置文件\033[0m"
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "a) \033[32m添加提供者\033[0m(支持订阅/分享链接及本地文件)" \
|
||||
"b) \033[36m本地生成配置文件\033[0m" \
|
||||
"c) \033[33m在线生成配置文件\033[0m" \
|
||||
"d) \033[31m清空提供者列表\033[0m" \
|
||||
"e) \033[36m自定义配置文件\033[0m" \
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "$COMMON_INPUT_L> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -94,7 +94,6 @@ set_core_config() {
|
||||
[ "$checkcfg" != "$checkcfg_new" ] && checkrestart
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
error_letter
|
||||
;;
|
||||
@@ -140,8 +139,8 @@ setproviders() {
|
||||
content_line ""
|
||||
content_line "a) \033[36m保存此提供者\033[0m"
|
||||
content_line "d) \033[31m删除此提供者\033[0m"
|
||||
content_line ""
|
||||
content_line "\033[36m以下方式的详细配置请前往对应功能页面进行设置!\033[0m"
|
||||
content_line ""
|
||||
content_line "\033[36m以下方式的详细配置请前往对应功能页面进行设置!\033[0m"
|
||||
[ -n "$link" ] &&
|
||||
content_line "b) \033[32m本地生成\033[0m仅包含此提供者的配置文件"
|
||||
echo "$link$link_uri" | grep -q '://' &&
|
||||
@@ -150,8 +149,8 @@ setproviders() {
|
||||
content_line "e) 在线获取此配置文件(不使用订阅转换)"
|
||||
echo "$link" | grep -q '^./providers' &&
|
||||
content_line "e) 直接使用此文件作为配置文件(不使用本地生成)"
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "请输入对应字母或数字> " input
|
||||
case "$input" in
|
||||
"" | 0)
|
||||
@@ -274,7 +273,7 @@ setproviders() {
|
||||
;;
|
||||
d)
|
||||
if [ -n "$name" ] && [ -n "$link" ]; then
|
||||
sed -i "/^$name /d" "$CRASHDIR"/configs/providers.cfg 2>/dev/null
|
||||
sed -i "/^$name /d" "$CRASHDIR"/configs/providers.cfg 2>/dev/null
|
||||
msg_alert "\033[32m$COMMON_SUCCESS\033[0m"
|
||||
elif [ -n "$name" ] && [ -n "$link_uri" ]; then
|
||||
sed -i "/^$name /d" "$CRASHDIR"/configs/providers_uri.cfg 2>/dev/null
|
||||
@@ -341,16 +340,14 @@ saveproviders() {
|
||||
# 本地生成覆写
|
||||
custproviders() {
|
||||
while true; do
|
||||
line_break
|
||||
separator_line "="
|
||||
content_line "1) 设置\033[33m健康检查间隔\033[0m:\t\033[47;30m$interval\033[0m 分钟"
|
||||
content_line "2) 设置\033[36m自动更新间隔\033[0m:\t\033[47;30m$interval2\033[0m 小时"
|
||||
top_box "1) 设置\033[33m健康检查间隔\033[0m:\t\033[47;30m$interval\033[0m 分钟" \
|
||||
"2) 设置\033[36m自动更新间隔\033[0m:\t\033[47;30m$interval2\033[0m 小时"
|
||||
echo "$link" | grep -q '^http' &&
|
||||
content_line "3) 设置\033[33m虚拟浏览器UA\033[0m:\t\033[47;30m$ua\033[0m"
|
||||
content_line "4) 设置\033[31m排除节点正则\033[0m:\t\033[47;30m$exclude_w\033[0m"
|
||||
content_line "5) 设置\033[32m包含节点正则\033[0m:\t\033[47;30m$include_w\033[0m"
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "4) 设置\033[31m排除节点正则\033[0m:\t\033[47;30m$exclude_w\033[0m" \
|
||||
"5) 设置\033[32m包含节点正则\033[0m:\t\033[47;30m$include_w\033[0m" \
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
|
||||
@@ -21,9 +21,8 @@ gateway() {
|
||||
content_line "6) 配置\033[36mTailscale内网穿透\033[0m(限Singbox) \033[32m$ts_service\033[0m"
|
||||
content_line "7) 配置\033[36mWireguard客户端\033[0m(限Singbox) \033[32m$wg_service\033[0m"
|
||||
}
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -277,10 +276,9 @@ set_vmess() {
|
||||
content_line "5) 一键生成\033[32m随机秘钥\033[0m"
|
||||
gen_base64 1 >/dev/null 2>&1 &&
|
||||
content_line "6) 设置\033[36m混淆host(可选)\033[0m: \033[33m$vms_host\033[0m"
|
||||
content_line "7) 一键生成\033[32m分享链接\033[0m"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "7) 一键生成\033[32m分享链接\033[0m" \
|
||||
"" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -402,9 +400,8 @@ set_shadowsocks() {
|
||||
content_line "4) 设置\033[36mpassword\033[0m: \033[36m$sss_pwd\033[0m"
|
||||
gen_base64 1 >/dev/null 2>&1 &&
|
||||
content_line "5) 一键生成分享链接"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -450,9 +447,8 @@ set_shadowsocks() {
|
||||
content_line "6) \033[32m2022-blake3-aes-128-gcm\033[0m"
|
||||
content_line "7) \033[32m2022-blake3-aes-256-gcm\033[0m"
|
||||
}
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
0) ;;
|
||||
|
||||
@@ -90,9 +90,8 @@ tools() {
|
||||
[ -x /usr/sbin/otapredownload ] && content_line "5) \033[33m$mi_update\033[0m小米系统自动更新"
|
||||
[ "$systype" = "mi_snapshot" ] && content_line "6) 小米设备软固化SSH ———— \033[$mi_mi_autoSSH_type \033[0m"
|
||||
[ "$systype" = "mi_snapshot" ] && content_line "8) 小米设备Tun模块修复 ———— \033[$mi_tunfix \033[0m"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -371,28 +370,30 @@ log_pusher() {
|
||||
# echo -e "\033[33m详细设置指南请参考 https://juewuy.github.io/ \033[0m"
|
||||
comp_box "请先通过 \033[32;4mhttps://pushover.net/\033[0m 注册账号并获取\033[36mUser Key\033[0m" \
|
||||
"" \
|
||||
"\033[33m请直接请输入你的User Key\033[0m" \
|
||||
"\033[36m请直接请输入你的User Key\033[0m" \
|
||||
"或输入 0 返回上级菜单"
|
||||
read -r -p "请输入> " key
|
||||
if [ "$key" = 0 ]; then
|
||||
continue
|
||||
elif [ -n "$key" ]; then
|
||||
line_break
|
||||
separator_line "="
|
||||
content_line "\033[33m请检查注册邮箱,完成账户验证\033[0m"
|
||||
read -r -p "我已经验证完成(1/0)> "
|
||||
separator_line "="
|
||||
|
||||
comp_box "请通过 \033[32;4mhttps://pushover.net/apps/build\033[0m 生成\033[36mAPI Token\033[0m"
|
||||
read -r -p "请输入你的API Token> " Token
|
||||
if [ -n "$Token" ]; then
|
||||
push_Po=$Token
|
||||
push_Po_key=$key
|
||||
setconfig push_Po "$Token"
|
||||
setconfig push_Po_key "$key"
|
||||
logger "已完成Passover日志推送设置!" 32
|
||||
comp_box "\033[33m请检查注册邮箱,完成账户验证\033[0m"
|
||||
btm_box "1) 我已经验证完成" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "我已经验证完成(1/0)> " res
|
||||
if [ "$res" = 1 ]; then
|
||||
comp_box "请通过 \033[32;4mhttps://pushover.net/apps/build\033[0m 生成\033[36mAPI Token\033[0m"
|
||||
read -r -p "请输入你的API Token> " Token
|
||||
if [ -n "$Token" ]; then
|
||||
push_Po=$Token
|
||||
push_Po_key=$key
|
||||
setconfig push_Po "$Token"
|
||||
setconfig push_Po_key "$key"
|
||||
logger "已完成Passover日志推送设置!" 32
|
||||
else
|
||||
msg_alert "\033[31m输入错误,请重新输入!\033[0m"
|
||||
fi
|
||||
else
|
||||
msg_alert "\033[31m输入错误,请重新输入!\033[0m"
|
||||
continue
|
||||
fi
|
||||
else
|
||||
msg_alert "\033[31m输入错误,请重新输入!\033[0m"
|
||||
@@ -443,7 +444,6 @@ log_pusher() {
|
||||
else
|
||||
line_break
|
||||
read -r -p "请输入你的Synology DSM主页地址> " URL
|
||||
line_break
|
||||
read -r -p "请输入你的Synology Chat Token> " TOKEN
|
||||
comp_box '请通过"你的群晖地址/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2&token=你的TOKEN"获取user_id'
|
||||
read -r -p "请输入你的user_id> " USERID
|
||||
@@ -500,7 +500,6 @@ log_pusher() {
|
||||
line_break
|
||||
echo "==========================================================="
|
||||
cat "$TMPDIR"/ShellCrash.log
|
||||
echo ""
|
||||
echo "==========================================================="
|
||||
else
|
||||
msg_alert "\033[31m未找到相关日志!\033[0m"
|
||||
@@ -660,9 +659,8 @@ debug() {
|
||||
content_line ""
|
||||
content_line "8) 后台运行完整启动流程,输出执行错误并查找上下文,之后关闭进程"
|
||||
[ -s "$TMPDIR"/jsons/inbounds.json ] && content_line "9) 将\033[32m$config_tmp\033[0m下json文件合并为$TMPDIR/debug.json"
|
||||
content_line ""
|
||||
content_line "0) 返回上级目录"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级目录"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
0) ;;
|
||||
|
||||
@@ -363,10 +363,8 @@ checkcustcore() {
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
0)
|
||||
@@ -530,13 +528,12 @@ setcore() {
|
||||
content_line "4) \033[43;30mClash\033[0m:\033[32m$clash_v \033[32m占用低\033[0m \033[33m不安全,已停止维护\033[0m"
|
||||
sub_content_line "说明文档:\033[36;4mhttps://lancellc.gitbook.io\033[0m"
|
||||
}
|
||||
content_line "5) 切换版本分支及压缩方式:\033[32m$zip_type\033[0m"
|
||||
content_line "6) \033[36m使用自定义内核\033[0m $custcore"
|
||||
content_line "7) \033[32m更新当前内核\033[0m"
|
||||
content_line "9) 手动指定处理器架构"
|
||||
content_line ""
|
||||
content_line "0 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "5) 切换版本分支及压缩方式:\033[32m$zip_type\033[0m" \
|
||||
"6) \033[36m使用自定义内核\033[0m $custcore" \
|
||||
"7) \033[32m更新当前内核\033[0m" \
|
||||
"9) 手动指定处理器架构" \
|
||||
"" \
|
||||
"0 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -1188,7 +1185,7 @@ setserver() {
|
||||
comp_box "\033[33m开发版未经过妥善测试,可能依然存在大量bug!!!\033[0m" \
|
||||
"\033[33m如果你没有足够的耐心或者测试经验,切勿使用此版本!\033[0m" \
|
||||
"请务必加入我们的讨论组:\033[36;4mhttps://t.me/ShellClash\033[0m"
|
||||
content_line "是否依然切换到开发版:"
|
||||
content_line "是否依然切换到开发版?"
|
||||
separator_line "-"
|
||||
btm_box "1) 确认切换" \
|
||||
"0) 返回上级菜单"
|
||||
@@ -1240,8 +1237,8 @@ setserver() {
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应标号> " num
|
||||
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
||||
continue
|
||||
|
||||
@@ -49,20 +49,15 @@ set_ddns() {
|
||||
read -r -p "请输入强制更新间隔(单位:小时;默认为24)> " force_interval
|
||||
[ -z "$force_interval" ] || [ "$force_interval" -lt 1 -o "$force_interval" -gt 240 ] && force_interval=24
|
||||
|
||||
line_break
|
||||
separator_line "="
|
||||
content_line "请核对如下信息:"
|
||||
content_line ""
|
||||
content_line "服务商: \033[32m$service\033[0m"
|
||||
content_line "域名: \033[32m$domain\033[0m"
|
||||
content_line "用户名: \033[32m$username\033[0m"
|
||||
content_line "检测间隔: \033[32m$check_interval\033[0m"
|
||||
separator_line "="
|
||||
content_line "是否确认添加:"
|
||||
separator_line "="
|
||||
content_line "1) 是"
|
||||
content_line "0) 否,重新輸入"
|
||||
separator_line "="
|
||||
comp_box "请核对如下信息:" \
|
||||
"" \
|
||||
"服务商: \033[32m$service\033[0m" \
|
||||
"域名: \033[32m$domain\033[0m" \
|
||||
"用户名: \033[32m$username\033[0m" \
|
||||
"检测间隔: \033[32m$check_interval\033[0m"
|
||||
btm_box "是否确认添加:"
|
||||
btm_box "1) 是" \
|
||||
"0) 否,重新輸入"
|
||||
read -r -p "$COMMON_INPUT> " res
|
||||
if [ "$res" = 1 ]; then
|
||||
add_ddns
|
||||
@@ -103,10 +98,10 @@ set_ddns_service() {
|
||||
set_ddns_type() {
|
||||
while true; do
|
||||
comp_box "\033[32m请选择网络模式:\033[0m"
|
||||
content_line "1) \033[36mIPV4\033[0m"
|
||||
content_line "2) \033[36mIPV6\033[0m"
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "1) \033[36mIPV4\033[0m" \
|
||||
"2) \033[36mIPV6\033[0m" \
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -135,16 +130,13 @@ rev_ddns_service() {
|
||||
while true; do
|
||||
enabled=$(uci get ddns."$service".enabled)
|
||||
[ "$enabled" = 1 ] && enabled_b="停用" || enabled_b="启用"
|
||||
line_break
|
||||
separator_line "="
|
||||
content_line "1) \033[32m立即更新\033[0m"
|
||||
content_line "2) 编辑当前服务"
|
||||
content_line "3) $enabled_b当前服务"
|
||||
content_line "4) 移除当前服务"
|
||||
content_line "5) 查看运行日志"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
comp_box "1) \033[32m立即更新\033[0m" \
|
||||
"2) 编辑当前服务" \
|
||||
"3) $enabled_b当前服务" \
|
||||
"4) 移除当前服务" \
|
||||
"5) 查看运行日志" \
|
||||
"" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -176,11 +168,9 @@ rev_ddns_service() {
|
||||
;;
|
||||
5)
|
||||
line_break
|
||||
separator_line "="
|
||||
echo "==========================================================="
|
||||
cat /var/log/ddns/"$service".log 2>/dev/null
|
||||
content_line ""
|
||||
separator_line "="
|
||||
sleep 1
|
||||
echo "==========================================================="
|
||||
break
|
||||
;;
|
||||
*)
|
||||
|
||||
@@ -89,9 +89,9 @@ set_dns_mod() {
|
||||
line_break
|
||||
separator_line "="
|
||||
if [ "$hosts_opt" = ON ]; then
|
||||
content_line "当前\033[33m已启用\033[0mHosts优化,是否确认禁用:"
|
||||
content_line "当前\033[33m已启用\033[0mHosts优化,是否确认禁用?"
|
||||
else
|
||||
content_line "当前\033[33m已禁用\033[0mHosts优化,是否确认启用:"
|
||||
content_line "当前\033[33m已禁用\033[0mHosts优化,是否确认启用?"
|
||||
fi
|
||||
separator_line "="
|
||||
btm_box "1) 是" \
|
||||
@@ -127,9 +127,9 @@ set_dns_mod() {
|
||||
line_break
|
||||
separator_line "="
|
||||
if [ "$ecs_subnet" = ON ]; then
|
||||
content_line "当前\033[33m已启用\033[0mHosts优化,是否确认禁用:"
|
||||
content_line "当前\033[33m已启用\033[0mHosts优化,是否确认禁用?"
|
||||
else
|
||||
content_line "当前\033[33m已禁用\033[0mHosts优化,是否确认启用:"
|
||||
content_line "当前\033[33m已禁用\033[0mHosts优化,是否确认启用?"
|
||||
fi
|
||||
separator_line "="
|
||||
btm_box "1) 是" \
|
||||
@@ -164,7 +164,7 @@ set_dns_mod() {
|
||||
comp_box "\033[31m$DNS_REDIR_WARN\033[0m" \
|
||||
"\033[33m$DNS_REDIR_HINT 127.0.0.1:$dns_port\033[0m" \
|
||||
"" \
|
||||
"请直接输入旁路由IPV4地址" \
|
||||
"\033[36m请直接输入旁路由IPV4地址\033[0m" \
|
||||
"或输入 r 重置DNS劫持端口" \
|
||||
"或输入 0 返回上级菜单"
|
||||
read -r -p "请输入> " num
|
||||
@@ -223,9 +223,8 @@ fake_ip_filter() {
|
||||
else
|
||||
content_line "\033[33m$DNS_FAKEIP_EMPTY\033[0m"
|
||||
fi
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "$DNS_FAKEIP_EDIT> " input
|
||||
case "$input" in
|
||||
"" | 0)
|
||||
|
||||
@@ -93,13 +93,13 @@ set_common_ports() {
|
||||
content_line "当前已放行端口:\033[36m$multiport\033[0m"
|
||||
fi
|
||||
separator_line "="
|
||||
content_line "1) 启用/关闭端口过滤: \033[36m$common_ports\033[0m"
|
||||
content_line "2) 添加放行端口"
|
||||
content_line "3) 移除指定放行端口"
|
||||
content_line "4) 重置默认放行端口"
|
||||
content_line "5) 重置为旧版放行端口"
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "1) 启用/关闭端口过滤: \033[36m$common_ports\033[0m" \
|
||||
"2) 添加放行端口" \
|
||||
"3) 移除指定放行端口" \
|
||||
"4) 重置默认放行端口" \
|
||||
"5) 重置为旧版放行端口" \
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "$COMMON_INPUT> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -125,7 +125,7 @@ set_common_ports() {
|
||||
comp_box "\033[31m最多支持设置放行15个端口,请先减少一些!\033[0m"
|
||||
else
|
||||
comp_box "当前已放行端口:\033[36m$multiport\033[0m"
|
||||
btm_box "请直接输入要放行的端口号\n(每次只能输入一个端口号,切勿一次添加多个端口号)" \
|
||||
btm_box "\033[36m请直接输入要放行的端口号\033[0m\n(每次只能输入一个端口号,切勿一次添加多个端口号)" \
|
||||
"或输入 0 返回上级菜单"
|
||||
read -r -p "请输入> " port
|
||||
if [ "$port" = 0 ]; then
|
||||
@@ -245,6 +245,7 @@ set_cust_host_ipv4() {
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
set_reserve_ipv4() {
|
||||
while true; do
|
||||
[ -z "$reserve_ipv4" ] && reserve_ipv4="0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 100.64.0.0/10 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.0.0.0/4"
|
||||
@@ -283,6 +284,7 @@ set_reserve_ipv4() {
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# 局域网设备过滤
|
||||
fw_filter_lan() {
|
||||
get_devinfo() {
|
||||
@@ -290,7 +292,6 @@ fw_filter_lan() {
|
||||
dev_mac=$(cat "$dhcpdir" | grep " $dev " | awk '{print $2}') && [ -z "$dev_mac" ] && dev_mac=$dev
|
||||
dev_name=$(cat "$dhcpdir" | grep " $dev " | awk '{print $4}') && [ -z "$dev_name" ] && dev_name='未知设备'
|
||||
}
|
||||
|
||||
add_mac() {
|
||||
while true; do
|
||||
comp_box "手动输入mac地址时仅支持\033[32mxx:xx:xx:xx:xx:xx\033[0m的形式"
|
||||
@@ -313,9 +314,8 @@ fw_filter_lan() {
|
||||
else
|
||||
content_line "无纪录"
|
||||
fi
|
||||
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "请输入对应序号或直接输入mac地址> " num
|
||||
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
||||
i=
|
||||
@@ -363,9 +363,8 @@ fw_filter_lan() {
|
||||
else
|
||||
content_line "无纪录"
|
||||
fi
|
||||
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "请输入对应序号或直接输入IP地址段> " num
|
||||
if [ -z "$num" ] || [ "$num" = 0 ]; then
|
||||
i=
|
||||
@@ -404,8 +403,8 @@ fw_filter_lan() {
|
||||
"$i" "$dev_ip" "$dev_mac" "$dev_name")"
|
||||
i=$((i + 1))
|
||||
done
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "$COMMON_INPUT> " num
|
||||
mac_filter_rows=$(cat "$CRASHDIR"/configs/mac 2>/dev/null | wc -l)
|
||||
ip_filter_rows=$(cat "$CRASHDIR"/configs/ip_filter 2>/dev/null | wc -l)
|
||||
|
||||
@@ -78,9 +78,8 @@ setrules() {
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0) ;;
|
||||
@@ -112,9 +111,8 @@ setrules() {
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0) ;;
|
||||
@@ -143,9 +141,8 @@ setrules() {
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -252,7 +249,7 @@ setgroups() {
|
||||
comp_box "\033[33m注意策略组名称必须和【自定义规则】或【自定义节点】功能中指定的策略组一致!\033[0m" \
|
||||
"\033[33m建议先创建策略组,之后可在【自定义规则】或【自定义节点】功能中智能指定\033[0m" \
|
||||
"\033[33m如需在当前策略组下添加节点,请手动编辑$YAMLSDIR/proxy-groups.yaml\033[0m"
|
||||
btm_box "\033[32m请直接输入自定义策略组名称\033[0m\n(不支持纯数字且不要包含特殊字符!)" \
|
||||
btm_box "\033[36m请直接输入自定义策略组名称\033[0m\n(不支持纯数字且不要包含特殊字符!)" \
|
||||
"或输入 0 返回上级菜单"
|
||||
read -r -p "请输入> " new_group_name
|
||||
|
||||
@@ -322,12 +319,11 @@ EOF
|
||||
while true; do
|
||||
comp_box "\033[33m你可以在这里快捷管理自定义策略组\033[0m" \
|
||||
"\033[36m如需修改或批量操作,请手动编辑:$YAMLSDIR/proxy-groups.yaml\033[0m"
|
||||
content_line "1) 添加自定义策略组"
|
||||
content_line "2) 查看自定义策略组"
|
||||
content_line "3) 清空自定义策略组"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "1) 添加自定义策略组" \
|
||||
"2) 查看自定义策略组" \
|
||||
"3) 清空自定义策略组" \
|
||||
"" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -398,9 +394,8 @@ setproxies() {
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应数字(多个用空格分隔)> " char
|
||||
case "$char" in
|
||||
"" | 0) ;;
|
||||
@@ -423,13 +418,12 @@ setproxies() {
|
||||
while true; do
|
||||
comp_box "\033[33m你可以在这里快捷管理自定义节点\033[0m" \
|
||||
"\033[36m如需批量操作,请手动编辑:$YAMLSDIR/proxies.yaml\033[0m"
|
||||
content_line "1) 添加自定义节点"
|
||||
content_line "2) 管理自定义节点"
|
||||
content_line "3) 清空自定义节点"
|
||||
content_line "4) 配置节点绕过: \033[36m$proxies_bypass\033[0m"
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "1) 添加自定义节点" \
|
||||
"2) 管理自定义节点" \
|
||||
"3) 清空自定义节点" \
|
||||
"4) 配置节点绕过: \033[36m$proxies_bypass\033[0m" \
|
||||
"" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -451,9 +445,8 @@ setproxies() {
|
||||
while IFS= read -r line; do
|
||||
content_line "$line"
|
||||
done
|
||||
content_line ""
|
||||
content_line "0) 返回上级菜单"
|
||||
separator_line "="
|
||||
btm_box "" \
|
||||
"0) 返回上级菜单"
|
||||
read -r -p "请输入对应数字> " num
|
||||
if [ "$num" = 0 ]; then
|
||||
continue
|
||||
|
||||
@@ -21,11 +21,11 @@ providers() {
|
||||
[ -z "$provider_temp_des" ] && provider_temp_des=$provider_temp_file
|
||||
fi
|
||||
|
||||
top_box "1) \033[32m生成\033[0m包含全部提供者的配置文件" \
|
||||
comp_box "1) \033[32m生成\033[0m包含全部提供者的配置文件" \
|
||||
"2) 选择\033[33m规则模版\033[0m \033[32m$provider_temp_des\033[0m" \
|
||||
"3) \033[33m清理\033[0mproviders目录文件" \
|
||||
""
|
||||
common_back
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "请输入对应字母或数字> " num
|
||||
case "$num" in
|
||||
"" | 0)
|
||||
@@ -45,15 +45,15 @@ providers() {
|
||||
comp_box "当前规则模版为:\033[32m$provider_temp_des\033[0m" \
|
||||
"\033[33m请选择在线模版:\033[0m"
|
||||
list_box "$list"
|
||||
content_line ""
|
||||
content_line "a) 使用\033[36m本地模版\033[0m"
|
||||
content_line ""
|
||||
common_back
|
||||
btm_box "" \
|
||||
"a) 使用\033[36m本地模版\033[0m" \
|
||||
"" \
|
||||
"0) $COMMON_BACK"
|
||||
read -r -p "请输入对应字母或数字> " num
|
||||
case "$num" in
|
||||
"" | 0) ;;
|
||||
a)
|
||||
echo ""
|
||||
line_break
|
||||
read -r -p "请输入模版的路径(绝对路径)> " dir
|
||||
if [ -s "$dir" ]; then
|
||||
provider_temp_file=$dir
|
||||
|
||||
@@ -6,9 +6,8 @@ uninstall() {
|
||||
comp_box "\033[31m警告:\033[0m" \
|
||||
"\033[31m该操作不可逆!\033" \
|
||||
"是否确认卸载ShellCrash:"
|
||||
content_line "1) 是"
|
||||
content_line "0) 否"
|
||||
separator_line "="
|
||||
btm_box "1) 是" \
|
||||
"0) 否"
|
||||
read -r -p "$COMMON_INPUT> " res
|
||||
if [ "$res" = '1' ]; then
|
||||
# 停止服务
|
||||
@@ -21,9 +20,8 @@ uninstall() {
|
||||
# 移除安装目录
|
||||
if [ -n "$CRASHDIR" ] && [ "$CRASHDIR" != '/' ]; then
|
||||
comp_box "是否保留脚本配置及订阅文件:"
|
||||
content_line "1) 是"
|
||||
content_line "0) 否"
|
||||
separator_line "="
|
||||
btm_box "1) 是" \
|
||||
"0) 否"
|
||||
read -r -p "$COMMON_INPUT> " res
|
||||
if [ "$res" = '1' ]; then
|
||||
mv -f "$CRASHDIR"/configs /tmp/ShellCrash/configs_bak
|
||||
|
||||
Reference in New Issue
Block a user