chore: invoke the common.sh componen

This commit is contained in:
sofia-riese
2026-02-03 17:21:25 +08:00
parent dec6b6bf6f
commit 70aa90f584
3 changed files with 214 additions and 457 deletions

View File

@@ -12,11 +12,8 @@ set_dns_mod() {
[ -z "$hosts_opt" ] && hosts_opt=ON
[ -z "$dns_protect" ] && dns_protect=ON
[ -z "$ecs_subnet" ] && ecs_subnet=OFF
line_break
separator_line "="
content_line "$DNS_CURRENT_MODE\033[47;30m $dns_mod \033[0m"
content_line "\033[33m$DNS_RESTART_NOTICE\033[0m"
separator_line "="
comp_box "$DNS_CURRENT_MODE\033[47;30m $dns_mod \033[0m" \
"\033[33m$DNS_RESTART_NOTICE\033[0m"
content_line "1) 设为MIX$COMMON_MOD\t\033[32m$DNS_MODE_MIX_DESC\033[0m"
content_line "2) 设为Route$COMMON_MOD\t\033[32m$DNS_MODE_ROUTE_DESC\033[0m"
content_line "3) 设为Redir$COMMON_MOD\t\033[33m$DNS_MODE_REDIR_DESC\033[0m"
@@ -37,40 +34,32 @@ set_dns_mod() {
break
;;
1 | 2)
line_break
separator_line "="
if echo "$crashcore" | grep -q 'singbox' || [ "$crashcore" = meta ]; then
[ "$num" = 1 ] && dns_mod=mix || dns_mod=route
setconfig dns_mod "$dns_mod"
content_line "\033[36m$DNS_SET_OK$dns_mod\033[0m"
msg_alert "\033[36m$DNS_SET_OK$dns_mod\033[0m"
else
econtent_line "\033[31m$DNS_CORE_UNSUPPORTED\033[0m"
msg_alert "\033[31m$DNS_CORE_UNSUPPORTED\033[0m"
fi
separator_line "="
sleep 1
;;
3)
dns_mod=redir_host
setconfig dns_mod "$dns_mod"
line_break
separator_line "="
content_line "\033[36m$DNS_SET_OK$dns_mod\033[0m"
separator_line "="
msg_alert "\033[36m$DNS_SET_OK$dns_mod\033[0m"
;;
4)
while true; do
line_break
separator_line "="
if [ "$dns_protect" = ON ]; then
content_line "当前\033[33m已启用\033[0mDNS防泄漏是否确认禁用"
content_line "当前\033[33m已启用\033[0mDNS防泄漏是否确认禁用"
else
content_line "当前\033[33m已禁用\033[0mDNS防泄漏是否确认启用"
content_line "当前\033[33m已禁用\033[0mDNS防泄漏是否确认启用"
fi
separator_line "="
content_line "1) 是"
content_line "2) 重置为默认值"
content_line "0) 否,返回上级菜单"
separator_line "="
btm_box "1) 是" \
"2) 重置为默认值" \
"0) 否,返回上级菜单"
read -r -p "$COMMON_INPUT> " num
case "$num" in
0)
@@ -88,17 +77,11 @@ set_dns_mod() {
;;
*)
errornum
sleep 1
continue
;;
esac
setconfig dns_protect "$dns_protect"
line_break
separator_line "="
content_line "\033[32m操作成功\033[0m"
separator_line "="
sleep 1
common_success
done
;;
5)
@@ -111,10 +94,9 @@ set_dns_mod() {
content_line "当前\033[33m已禁用\033[0mHosts优化是否确认启用"
fi
separator_line "="
content_line "1) 是"
content_line "2) 重置为默认值"
content_line "0) 否,返回上级菜单"
separator_line "="
btm_box "1) 是" \
"2) 重置为默认值" \
"0) 否,返回上级菜单"
read -r -p "$COMMON_INPUT> " num
case "$num" in
0)
@@ -132,17 +114,11 @@ set_dns_mod() {
;;
*)
errornum
sleep 1
continue
;;
esac
setconfig dns_protect "$hosts_opt"
line_break
separator_line "="
content_line "\033[32m操作成功\033[0m"
separator_line "="
sleep 1
common_success
done
;;
6)
@@ -156,10 +132,9 @@ set_dns_mod() {
content_line "当前\033[33m已禁用\033[0mHosts优化是否确认启用"
fi
separator_line "="
content_line "1) 是"
content_line "2) 重置为默认值"
content_line "0) 否,返回上级菜单"
separator_line "="
btm_box "1) 是" \
"2) 重置为默认值" \
"0) 否,返回上级菜单"
read -r -p "$COMMON_INPUT> " num
case "$num" in
0)
@@ -177,30 +152,21 @@ set_dns_mod() {
;;
*)
errornum
sleep 1
continue
;;
esac
setconfig dns_protect "$ecs_subnet"
line_break
separator_line "="
content_line "\033[32m操作成功\033[0m"
separator_line "="
sleep 1
common_success
done
;;
7)
while true; do
line_break
separator_line "="
content_line "\033[31m$DNS_REDIR_WARN\033[0m"
content_line "\033[33m$DNS_REDIR_HINT 127.0.0.1:$dns_port\033[0m"
content_line ""
content_line "请直接输入旁路由IPV4地址"
content_line "或输入 r 重置DNS劫持端口"
content_line "或输入 0 返回上级菜单"
separator_line "="
comp_box "\033[31m$DNS_REDIR_WARN\033[0m" \
"\033[33m$DNS_REDIR_HINT 127.0.0.1:$dns_port\033[0m" \
"" \
"请直接输入旁路由IPV4地址" \
"或输入 r 重置DNS劫持端口" \
"或输入 0 返回上级菜单"
read -r -p "请输入> " num
case "$num" in
0)
@@ -209,33 +175,21 @@ set_dns_mod() {
r)
dns_redir_port="$dns_port"
setconfig dns_redir_port
line_break
separator_line "="
content_line "\033[32m操作成功\033[0m"
separator_line "="
sleep 1
common_success
break
;;
*)
if [ "$num" -ge 1 ] && [ "$num" -lt 65535 ]; then
line_break
separator_line "="
if ckcmd netstat && netstat -ntul | grep -q ":$num "; then
dns_redir_port="$num"
setconfig dns_redir_port "$dns_redir_port"
content_line "\033[32m操作成功\033[0m"
separator_line "="
sleep 1
common_success
break
else
content_line "\033[33m$DNS_REDIR_NO_SERVICE\033[0m"
separator_line "="
sleep 1
msg_alert
fi
else
errornum
sleep 1
fi
;;
esac
@@ -249,7 +203,6 @@ set_dns_mod() {
;;
*)
errornum
sleep 1
;;
esac
done
@@ -257,13 +210,9 @@ set_dns_mod() {
fake_ip_filter() {
while true; do
line_break
separator_line "="
content_line "\033[32m$DNS_FAKEIP_DESC\033[0m"
content_line "\033[31m$DNS_FAKEIP_TIP\033[0m"
content_line "\033[36m$DNS_FAKEIP_EXAMPLE\033[0m"
separator_line "="
comp_box "\033[32m$DNS_FAKEIP_DESC\033[0m" \
"\033[31m$DNS_FAKEIP_TIP\033[0m" \
"\033[36m$DNS_FAKEIP_EXAMPLE\033[0m"
if [ -s "$CRASHDIR/configs/fake_ip_filter" ]; then
content_line "\033[33m$DNS_FAKEIP_EXIST\033[0m"
content_line ""
@@ -283,35 +232,27 @@ fake_ip_filter() {
break
;;
*)
line_break
separator_line "="
if [ "$input" -ge 1 ] 2>/dev/null; then
if sed -i "${input}d" "$CRASHDIR/configs/fake_ip_filter"; then
content_line "\033[32m移除成功\033[0m"
msg_alert "\033[32m移除成功\033[0m"
else
content_line "\033[31m移除失败\033[0m"
msg_alert "\033[31m移除失败\033[0m"
fi
else
content_line "请确认需要添加的地址:\033[32m$input\033[0m"
separator_line "="
content_line "1) 确认无误"
content_line "0) 返回上级菜单"
separator_line "="
comp_box "请确认需要添加的地址:\033[32m$input\033[0m"
btm_box "1) 确认无误" \
"0) 返回上级菜单"
read -r -p "$COMMON_INPUT>" res
if [ "$res" = 1 ]; then
line_break
separator_line "="
if echo "$input" >>"$CRASHDIR/configs/fake_ip_filter"; then
content_line "\033[32m添加成功\033[0m"
msg_alert "\033[32m添加成功\033[0m"
else
content_line "\033[31m添加失败\033[0m"
msg_alert "\033[31m添加失败\033[0m"
fi
else
break
fi
fi
separator_line "="
sleep 1
;;
esac
done
@@ -320,46 +261,36 @@ fake_ip_filter() {
# DNS详细设置
set_dns_adv() {
while true; do
line_break
separator_line "="
content_line "\033[31m$DNS_ADV_SINGBOX_LIMIT\033[0m"
content_line "$DNS_ADV_SPLIT"
content_line "\033[33m$DNS_ADV_CERT\033[0m"
content_line ""
content_line "DIRECT-DNS"
content_line "\033[32m$dns_nameserver\033[0m"
content_line ""
content_line "PROXY-DNS"
content_line "\033[36m$dns_fallback\033[0m"
content_line ""
content_line "DEFAULT-DNS"
content_line "\033[33m$dns_resolver\033[0m"
content_line ""
separator_line "="
content_line "1) $DNS_ADV_EDIT_DIRECT"
content_line "2) $DNS_ADV_EDIT_PROXY"
content_line "3) $DNS_ADV_EDIT_DEFAULT"
content_line "4) \033[32m$DNS_ADV_AUTO_ENCRYPT\033[0m"
content_line "9) \033[33m$DNS_ADV_RESET\033[0m"
content_line "0) $COMMON_BACK"
separator_line "="
read -r -p "$COMMON_INPUT > " num
comp_box "\033[31m$DNS_ADV_SINGBOX_LIMIT\033[0m" \
"$DNS_ADV_SPLIT" \
"\033[33m$DNS_ADV_CERT\033[0m" \
"" \
"DIRECT-DNS" \
"\033[32m$dns_nameserver\033[0m" \
"" \
"PROXY-DNS" \
"\033[36m$dns_fallback\033[0m" \
"" \
"DEFAULT-DNS" \
"\033[33m$dns_resolver\033[0m" \
""
btm_box "1) $DNS_ADV_EDIT_DIRECT" \
"2) $DNS_ADV_EDIT_PROXY" \
"3) $DNS_ADV_EDIT_DEFAULT" \
"4) \033[32m$DNS_ADV_AUTO_ENCRYPT\033[0m" \
"9) \033[33m$DNS_ADV_RESET\033[0m" \
"" \
"0) $COMMON_BACK"
read -r -p "$COMMON_INPUT> " num
case "$num" in
"" | 0)
break
;;
1)
line_break
separator_line "="
content_line "当前DIRECT-DNS\033[32m$dns_nameserver\033[0m"
separator_line "="
content_line "请直接输入新的DIRECT-DNS地址"
content_line "或输入 r 重置DIRECT-DNS地址"
content_line "或输入 0 返回上级菜单"
separator_line "="
comp_box "当前DIRECT-DNS\033[32m$dns_nameserver\033[0m"
btm_box "\033[36m请直接输入新的DIRECT-DNS地址\033[0m" \
"或输入 r 重置DIRECT-DNS地址" \
"或输入 0 返回上级菜单"
read -r -p "请输入> " res
case "$res" in
0)
@@ -368,34 +299,24 @@ set_dns_adv() {
r)
dns_nameserver="127.0.0.1"
setconfig dns_nameserver "'$dns_nameserver'"
line_break
separator_line "="
content_line "\033[32m操作成功\033[0m"
common_success
;;
*)
dns_nameserver=$(echo "$res" | sed 's#|#,\ #g')
line_break
separator_line "="
if [ -n "$dns_nameserver" ]; then
setconfig dns_nameserver "'$dns_nameserver'"
content_line "\033[32m操作成功\033[0m"
common_success
else
ontent_line "\033[32m操作失败\033[0m"
common_failed
fi
;;
esac
separator_line "="
;;
2)
line_break
separator_line "="
content_line "当前PROXY-DNS\033[32m$dns_fallback\033[0m"
separator_line "="
content_line "请直接输入新的PROXY-DNS地址"
content_line "或输入 r 重置PROXY-DNS地址"
content_line "或输入 0 返回上级菜单"
separator_line "="
comp_box "当前PROXY-DNS\033[32m$dns_fallback\033[0m"
btm_box "\033[36m请直接输入新的PROXY-DNS地址\033[0m" \
"或输入 r 重置PROXY-DNS地址" \
"或输入 0 返回上级菜单"
read -r -p "请输入> " res
case "$res" in
0)
@@ -404,32 +325,24 @@ set_dns_adv() {
r)
dns_fallback="1.1.1.1, 8.8.8.8"
setconfig dns_fallback "'$dns_fallback'"
line_break
separator_line "="
content_line "\033[32m操作成功\033[0m"
common_success
;;
*)
dns_fallback=$(echo "$res" | sed 's#|#,\ #g')
line_break
separator_line "="
if [ -n "$dns_fallback" ]; then
setconfig dns_fallback "'$dns_fallback'"
content_line "\033[32m操作成功\033[0m"
common_success
else
ontent_line "\033[32m操作失败\033[0m"
common_failed
fi
;;
esac
separator_line "="
;;
3)
line_break
separator_line "="
content_line "当前DEFAULT-DNS\033[32m$dns_resolver\033[0m"
separator_line "="
content_line "请直接输入新的DEFAULT-DNS地址"
content_line "或输入 r 重置DEFAULT-DNS地址"
content_line "或输入 0 返回上级菜单"
comp_box "当前DEFAULT-DNS\033[32m$dns_resolver\033[0m"
btm_box "\033[36m请直接输入新的DEFAULT-DNS地址\033[0m" \
"或输入 r 重置DEFAULT-DNS地址" \
"或输入 0 返回上级菜单"
separator_line "="
read -r -p "请输入> " res
case "$res" in
@@ -439,23 +352,18 @@ set_dns_adv() {
"r")
dns_resolver="223.5.5.5, 2400:3200::1"
setconfig dns_resolver "'$dns_resolver'"
line_break
separator_line "="
content_line "\033[32m操作成功\033[0m"
common_failed
;;
*)
line_break
separator_line "="
if echo "$res" | grep -qE '://.*::'; then
content_line "\033[31m$DNS_IPV6_NOT_SUPPORT\033[0m"
msg_alert "\033[31m$DNS_IPV6_NOT_SUPPORT\033[0m"
else
dns_resolver=$(echo "$res" | sed 's#|#,\ #g')
setconfig dns_resolver "'$dns_resolver'"
content_line "\033[32m$COMMON_SUCCESS\033[0m"
msg_alert "\033[32m$COMMON_SUCCESS\033[0m"
fi
;;
esac
separator_line "="
;;
4)
line_break
@@ -478,15 +386,11 @@ set_dns_adv() {
setconfig dns_fallback
setconfig dns_resolver
. "$CRASHDIR/libs/get_config.sh"
line_break
separator_line "="
content_line "\033[32m$COMMON_SUCCESS\033[0m"
separator_line "="
common_success
;;
*)
errornum
;;
esac
sleep 1
done
}