mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-11 07:51:45 +00:00
~Add i18n support for dns.sh
~Fix i18n support for 2_settings.sh
This commit is contained in:
@@ -2,13 +2,13 @@
|
||||
# Settings main menu
|
||||
# =================================================
|
||||
SET_MENU_TITLE="欢迎使用功能设置菜单:"
|
||||
SET_MENU_REDIR="路由模式设置"
|
||||
SET_MENU_DNS="DNS设置"
|
||||
SET_MENU_REDIR="路由模式设置:"
|
||||
SET_MENU_DNS="DNS设置: "
|
||||
SET_MENU_FW_FILTER="透明路由流量过滤"
|
||||
SET_MENU_SKIP_CERT="跳过证书验证"
|
||||
SET_MENU_SNIFFER="启用域名嗅探"
|
||||
SET_MENU_SKIP_CERT="跳过证书验证:"
|
||||
SET_MENU_SNIFFER="启用域名嗅探:"
|
||||
SET_MENU_ADV_PORT="自定义端口及密钥"
|
||||
SET_MENU_IPV6="IPv6设置"
|
||||
SET_MENU_IPV6="IPv6设置: "
|
||||
SET_MENU_RESET="重置/备份/还原脚本设置"
|
||||
|
||||
# =================================================
|
||||
|
||||
@@ -4,3 +4,5 @@ COMMON_BACK="返回上级菜单"
|
||||
COMMON_SUCCESS="设置成功!"
|
||||
COMMON_FAILED="设置失败!"
|
||||
COMMON_UNSET="未设置"
|
||||
COMMON_MOD="模式"
|
||||
|
||||
|
||||
54
scripts/lang/chs/dns.lang
Normal file
54
scripts/lang/chs/dns.lang
Normal file
@@ -0,0 +1,54 @@
|
||||
#=====DNS主菜单=====
|
||||
DNS_CURRENT_MODE="当前DNS运行模式为:"
|
||||
DNS_RESTART_NOTICE="切换模式后需要手动重启服务以生效!"
|
||||
|
||||
DNS_MODE_MIX_DESC="CN域名real-ip,其它fake-ip分流"
|
||||
DNS_MODE_ROUTE_DESC="CN域名real-ip,其它dns2proxy分流"
|
||||
DNS_MODE_REDIR_DESC="不安全,需搭配第三方DNS服务使用"
|
||||
|
||||
DNS_MENU_PROTECT="DNS防泄漏"
|
||||
DNS_MENU_HOSTS="Hosts优化"
|
||||
DNS_MENU_ECS="ECS优化"
|
||||
DNS_MENU_REDIR="DNS劫持端口"
|
||||
|
||||
DNS_PROTECT_DESC="——启用时少量网站可能出现连接卡顿"
|
||||
DNS_HOSTS_DESC="——调用本机hosts并劫持NTP服务"
|
||||
DNS_ECS_DESC="——解决CDN下载浪费流量等问题"
|
||||
DNS_REDIR_PORT_DESC="——用于兼容第三方DNS服务"
|
||||
|
||||
DNS_FAKEIP_MENU="管理Fake-IP过滤列表"
|
||||
DNS_ADV_MENU="修改DNS服务器"
|
||||
|
||||
DNS_SET_OK="DNS模式已设置为"
|
||||
DNS_CORE_UNSUPPORTED="当前内核不支持该功能!"
|
||||
|
||||
#=====DNS重定向=====
|
||||
DNS_REDIR_WARN="仅限搭配第三方DNS服务(AdGuard、SmartDNS等)使用!"
|
||||
DNS_REDIR_HINT="建议第三方DNS上游指向"
|
||||
DNS_REDIR_INPUT="请输入第三方DNS服务监听端口(0重置)>"
|
||||
DNS_REDIR_NO_SERVICE="该端口未检测到正在运行的DNS服务!"
|
||||
|
||||
#=====Fake-IP=====
|
||||
DNS_FAKEIP_DESC="用于解决Fake-IP模式下部分地址或应用无法连接的问题"
|
||||
DNS_FAKEIP_TIP="脚本已内置大量地址,只需添加出现问题的地址"
|
||||
DNS_FAKEIP_EXAMPLE="示例:a.b.com\n*.b.com\n*.*.b.com"
|
||||
DNS_FAKEIP_EXIST="已添加的Fake-IP过滤地址:"
|
||||
DNS_FAKEIP_EMPTY="尚未添加Fake-IP过滤地址"
|
||||
DNS_FAKEIP_EDIT="输入序号移除,输入地址添加"
|
||||
|
||||
#=====DNS高级=====
|
||||
DNS_ADV_SPLIT="多个DNS地址请使用“|”或“,”分隔输入"
|
||||
DNS_ADV_CERT="使用DoH/DoT需具备本地根证书文件"
|
||||
DNS_ADV_SINGBOX_LIMIT="注意:SingBox内核仅加载第一个DNS"
|
||||
|
||||
DNS_ADV_EDIT_DIRECT="修改DIRECT-DNS"
|
||||
DNS_ADV_EDIT_PROXY="修改PROXY-DNS(该DNS查询会经过节点)"
|
||||
DNS_ADV_EDIT_DEFAULT="修改DEFAULT-DNS(必须是IP,用于解析其他DNS)"
|
||||
DNS_ADV_AUTO_ENCRYPT="一键配置加密DNS"
|
||||
DNS_ADV_RESET="重置默认DNS配置"
|
||||
|
||||
DNS_INPUT_NEW="请输入新的DNS地址>"
|
||||
DNS_IPV6_NOT_SUPPORT="该选项暂不支持IPv6加密DNS!"
|
||||
|
||||
DNS_ENCRYPT_OK="已设置加密DNS,如遇DNS解析问题,请重置DNS配置!"
|
||||
DNS_CORE_REQUIRE="请使用Mihomo或SingBox内核"
|
||||
@@ -2,13 +2,13 @@
|
||||
# Settings main menu
|
||||
# =================================================
|
||||
SET_MENU_TITLE="Welcome to the Function Settings Menu:"
|
||||
SET_MENU_REDIR="Routing Mode"
|
||||
SET_MENU_DNS="DNS Settings"
|
||||
SET_MENU_REDIR="Routing Mode:"
|
||||
SET_MENU_DNS="DNS Settings:"
|
||||
SET_MENU_FW_FILTER="Transparent Routing Traffic Filter"
|
||||
SET_MENU_SKIP_CERT="Skip Certificate Verification"
|
||||
SET_MENU_SNIFFER="Enable Domain Sniffing"
|
||||
SET_MENU_SKIP_CERT="Skip Cert Verify:"
|
||||
SET_MENU_SNIFFER="Enable Sniff:"
|
||||
SET_MENU_ADV_PORT="Custom Ports and Secrets"
|
||||
SET_MENU_IPV6="IPv6 Settings"
|
||||
SET_MENU_IPV6="IPv6 Settings:"
|
||||
SET_MENU_RESET="Reset / Backup / Restore Script Settings"
|
||||
|
||||
# =================================================
|
||||
|
||||
@@ -4,3 +4,4 @@ COMMON_BACK="Back"
|
||||
COMMON_SUCCESS="Successfully set!"
|
||||
COMMON_FAILED="Setup failed!"
|
||||
COMMON_UNSET="Not set"
|
||||
COMMON_MOD="Mod"
|
||||
|
||||
54
scripts/lang/en/dns.lang
Normal file
54
scripts/lang/en/dns.lang
Normal file
@@ -0,0 +1,54 @@
|
||||
#===== DNS Main Menu =====
|
||||
DNS_CURRENT_MODE="Current DNS running mode:"
|
||||
DNS_RESTART_NOTICE="Changes require a manual service restart to take effect."
|
||||
|
||||
DNS_MODE_MIX_DESC="CN domains use real-ip, others use fake-ip routing"
|
||||
DNS_MODE_ROUTE_DESC="CN domains use real-ip, others use dns2proxy routing"
|
||||
DNS_MODE_REDIR_DESC="Insecure. Must be used with a third-party DNS service."
|
||||
|
||||
DNS_MENU_PROTECT="DNS Leak Protect"
|
||||
DNS_MENU_HOSTS="Hosts Optimization"
|
||||
DNS_MENU_ECS="ECS Optimization"
|
||||
DNS_MENU_REDIR="DNS Redirect Port"
|
||||
|
||||
DNS_PROTECT_DESC="May cause slow connections on some websites when enabled"
|
||||
DNS_HOSTS_DESC="Use local hosts file and hijack NTP service"
|
||||
DNS_ECS_DESC="Reduce wasted traffic caused by CDN misrouting"
|
||||
DNS_REDIR_PORT_DESC="Used for compatibility with third-party DNS services"
|
||||
|
||||
DNS_FAKEIP_MENU="Manage Fake-IP Filter List"
|
||||
DNS_ADV_MENU="Configure DNS Servers"
|
||||
|
||||
DNS_SET_OK="DNS mode has been set to"
|
||||
DNS_CORE_UNSUPPORTED="The current core does not support this feature."
|
||||
|
||||
#===== DNS Redirect =====
|
||||
DNS_REDIR_WARN="For use with third-party DNS services only (AdGuard, SmartDNS, etc.)"
|
||||
DNS_REDIR_HINT="It is recommended to set the upstream DNS of the third-party service to"
|
||||
DNS_REDIR_INPUT="Enter the listening port of the third-party DNS service (0 to reset)>"
|
||||
DNS_REDIR_NO_SERVICE="No running DNS service detected on this port!"
|
||||
|
||||
#===== Fake-IP =====
|
||||
DNS_FAKEIP_DESC="Used to resolve connectivity issues for certain addresses or applications in Fake-IP mode"
|
||||
DNS_FAKEIP_TIP="The script already includes many built-in entries. Only add problematic addresses."
|
||||
DNS_FAKEIP_EXAMPLE="Examples:\na.b.com\n*.b.com\n*.*.b.com"
|
||||
DNS_FAKEIP_EXIST="Existing Fake-IP filter entries:"
|
||||
DNS_FAKEIP_EMPTY="No Fake-IP filter entries have been added"
|
||||
DNS_FAKEIP_EDIT="Enter a number to remove an entry, or enter an address to add one"
|
||||
|
||||
#===== Advanced DNS =====
|
||||
DNS_ADV_SPLIT="Use '|' or ',' to separate multiple DNS addresses"
|
||||
DNS_ADV_CERT="DoH/DoT requires a local root certificate file"
|
||||
DNS_ADV_SINGBOX_LIMIT="Note: SingBox core only loads the first DNS entry"
|
||||
|
||||
DNS_ADV_EDIT_DIRECT="Edit DIRECT-DNS"
|
||||
DNS_ADV_EDIT_PROXY="Edit PROXY-DNS (queries go through the proxy)"
|
||||
DNS_ADV_EDIT_DEFAULT="Edit DEFAULT-DNS (must be an IP, used to resolve other DNS servers)"
|
||||
DNS_ADV_AUTO_ENCRYPT="Auto-configure Encrypted DNS"
|
||||
DNS_ADV_RESET="Reset to default DNS configuration"
|
||||
|
||||
DNS_INPUT_NEW="Enter new DNS address>"
|
||||
DNS_IPV6_NOT_SUPPORT="This option does not support IPv6 encrypted DNS!"
|
||||
|
||||
DNS_ENCRYPT_OK="Encrypted DNS has been configured. If DNS issues occur, please reset DNS settings."
|
||||
DNS_CORE_REQUIRE="Please use the Mihomo or SingBox core"
|
||||
@@ -17,15 +17,15 @@ settings() {
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[30;47m$SET_MENU_TITLE\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e " 1 $SET_MENU_REDIR:\t\033[36m$redir_mod\033[0m"
|
||||
echo -e " 2 $SET_MENU_DNS:\t\t\033[36m$dns_mod\033[0m"
|
||||
echo -e " 1 $SET_MENU_REDIR\t\033[36m$redir_mod\033[0m"
|
||||
echo -e " 2 $SET_MENU_DNS\t\033[36m$dns_mod\033[0m"
|
||||
echo -e " 3 $SET_MENU_FW_FILTER"
|
||||
[ "$disoverride" != "1" ] && {
|
||||
echo -e " 4 $SET_MENU_SKIP_CERT:\t\033[36m$skip_cert\033[0m"
|
||||
echo -e " 5 $SET_MENU_SNIFFER:\t\033[36m$sniffer\033[0m"
|
||||
echo -e " 4 $SET_MENU_SKIP_CERT\t\033[36m$skip_cert\033[0m"
|
||||
echo -e " 5 $SET_MENU_SNIFFER\t\033[36m$sniffer\033[0m"
|
||||
echo -e " 6 $SET_MENU_ADV_PORT"
|
||||
}
|
||||
echo -e " 8 $SET_MENU_IPV6:\t\t\033[36m$ipv6_redir\033[0m"
|
||||
echo -e " 8 $SET_MENU_IPV6\t\033[36m$ipv6_redir\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e " 9 \033[31m$SET_MENU_RESET\033[0m"
|
||||
echo -e " 0 $COMMON_BACK"
|
||||
|
||||
@@ -4,231 +4,212 @@
|
||||
[ -n "$__IS_MODULE_DNS_LOADED" ] && return
|
||||
__IS_MODULE_DNS_LOADED=1
|
||||
|
||||
set_dns_mod() { #DNS模式设置
|
||||
[ -z "$hosts_opt" ] && hosts_opt=ON
|
||||
load_lang dns
|
||||
|
||||
set_dns_mod() { # DNS 模式设置
|
||||
[ -z "$hosts_opt" ] && hosts_opt=ON
|
||||
[ -z "$dns_protect" ] && dns_protect=ON
|
||||
[ -z "$ecs_subnet" ] && ecs_subnet=OFF
|
||||
[ -z "$ecs_subnet" ] && ecs_subnet=OFF
|
||||
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "当前DNS运行模式为:\033[47;30m $dns_mod \033[0m"
|
||||
echo -e "\033[33m切换模式后需要手动重启服务以生效!\033[0m"
|
||||
echo -e "$DNS_CURRENT_MODE \033[47;30m $dns_mod \033[0m"
|
||||
echo -e "\033[33m$DNS_RESTART_NOTICE\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e " 1 MIX模式: \033[32mCN域名realip其他fake-ip分流\033[0m"
|
||||
echo -e " 2 Route模式:\033[32mCN域名realip其他dns2proxy分流\033[0m"
|
||||
echo -e " 3 Redir模式:\033[33m不安全,需搭配第三方DNS服务使用\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e " 4 DNS防泄漏: \033[36m$dns_protect\033[0m ———启用时少量网站可能连接卡顿"
|
||||
echo -e " 5 Hosts优化: \033[36m$hosts_opt\033[0m ———调用本机hosts并劫持NTP服务"
|
||||
echo -e " 6 ECS优化: \033[36m$ecs_subnet\033[0m ———解决CDN下载浪费流量等问题"
|
||||
echo -e " 7 DNS劫持端口:\033[36m$dns_redir_port\033[0m ———用于兼容第三方DNS服务"
|
||||
[ "$dns_mod" = "mix" ] &&
|
||||
echo -e " 8 管理MIX模式\033[33mFake-ip过滤列表\033[0m"
|
||||
echo -e " 9 修改\033[36mDNS服务器\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
echo " 0 返回上级菜单"
|
||||
read -p "请输入对应数字 > " num
|
||||
echo -e " 1 MIX$COMMON_MOD:\t\033[32m$DNS_MODE_MIX_DESC\033[0m"
|
||||
echo -e " 2 Route$COMMON_MOD:\t\033[32m$DNS_MODE_ROUTE_DESC\033[0m"
|
||||
echo -e " 3 Redir$COMMON_MOD:\t\033[33m$DNS_MODE_REDIR_DESC\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e " 4 $DNS_MENU_PROTECT:\t\033[36m$dns_protect\033[0m\t$DNS_PROTECT_DESC"
|
||||
echo -e " 5 $DNS_MENU_HOSTS:\t\033[36m$hosts_opt\033[0m\t$DNS_HOSTS_DESC"
|
||||
echo -e " 6 $DNS_MENU_ECS:\t\033[36m$ecs_subnet\033[0m\t$DNS_ECS_DESC"
|
||||
echo -e " 7 $DNS_MENU_REDIR:\033[36m$dns_redir_port\033[0m\t$DNS_REDIR_PORT_DESC"
|
||||
[ "$dns_mod" = "mix" ] &&
|
||||
echo -e " 8 \033[33m$DNS_FAKEIP_MENU\033[0m"
|
||||
echo -e " 9 \033[36m$DNS_ADV_MENU\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
echo " 0 $COMMON_BACK"
|
||||
read -p "$COMMON_INPUT > " num
|
||||
case "$num" in
|
||||
0) ;;
|
||||
1)
|
||||
if echo "$crashcore" | grep -q 'singbox' || [ "$crashcore" = meta ]; then
|
||||
dns_mod=mix
|
||||
setconfig dns_mod $dns_mod
|
||||
0) ;;
|
||||
1|2)
|
||||
if echo "$crashcore" | grep -q 'singbox' || [ "$crashcore" = meta ]; then
|
||||
[ "$num" = 1 ] && dns_mod=mix || dns_mod=route
|
||||
setconfig dns_mod "$dns_mod"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[36m$DNS_SET_OK: $dns_mod\033[0m"
|
||||
else
|
||||
echo -e "\033[31m$DNS_CORE_UNSUPPORTED\033[0m"
|
||||
sleep 1
|
||||
fi
|
||||
set_dns_mod
|
||||
;;
|
||||
3)
|
||||
dns_mod=redir_host
|
||||
setconfig dns_mod "$dns_mod"
|
||||
echo -e "\033[36m$DNS_SET_OK: $dns_mod\033[0m"
|
||||
set_dns_mod
|
||||
;;
|
||||
4)
|
||||
[ "$dns_protect" = ON ] && dns_protect=OFF || dns_protect=ON
|
||||
setconfig dns_protect "$dns_protect"
|
||||
set_dns_mod
|
||||
;;
|
||||
5)
|
||||
[ "$hosts_opt" = ON ] && hosts_opt=OFF || hosts_opt=ON
|
||||
setconfig hosts_opt "$hosts_opt"
|
||||
set_dns_mod
|
||||
;;
|
||||
6)
|
||||
[ "$ecs_subnet" = ON ] && ecs_subnet=OFF || ecs_subnet=ON
|
||||
setconfig ecs_subnet "$ecs_subnet"
|
||||
set_dns_mod
|
||||
;;
|
||||
7)
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[36m已设为 $dns_mod 模式!!\033[0m"
|
||||
else
|
||||
echo -e "\033[31m当前内核不支持的功能!!!\033[0m"
|
||||
sleep 1
|
||||
fi
|
||||
set_dns_mod
|
||||
;;
|
||||
2)
|
||||
if echo "$crashcore" | grep -q 'singbox' || [ "$crashcore" = meta ]; then
|
||||
dns_mod=route
|
||||
setconfig dns_mod $dns_mod
|
||||
echo -e "\033[31m$DNS_REDIR_WARN\033[0m"
|
||||
echo -e "\033[33m$DNS_REDIR_HINT 127.0.0.1:$dns_port\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[36m已设为 $dns_mod 模式!!\033[0m"
|
||||
else
|
||||
echo -e "\033[31m当前内核不支持的功能!!!\033[0m"
|
||||
|
||||
read -p "$DNS_REDIR_INPUT" num
|
||||
|
||||
if [ "$num" = 0 ]; then
|
||||
dns_redir_port="$dns_port"
|
||||
setconfig dns_redir_port
|
||||
elif [ "$num" -ge 1 ] && [ "$num" -lt 65535 ]; then
|
||||
if ckcmd netstat && netstat -ntul | grep -q ":$num "; then
|
||||
dns_redir_port="$num"
|
||||
setconfig dns_redir_port "$dns_redir_port"
|
||||
else
|
||||
echo -e "\033[33m$DNS_REDIR_NO_SERVICE\033[0m"
|
||||
fi
|
||||
else
|
||||
errornum
|
||||
fi
|
||||
sleep 1
|
||||
fi
|
||||
set_dns_mod
|
||||
;;
|
||||
3)
|
||||
dns_mod=redir_host
|
||||
setconfig dns_mod $dns_mod
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[36m已设为 $dns_mod 模式!!\033[0m"
|
||||
set_dns_mod
|
||||
;;
|
||||
4)
|
||||
[ "$dns_protect" = "ON" ] && dns_protect=OFF || dns_protect=ON
|
||||
setconfig dns_protect $dns_protect
|
||||
set_dns_mod
|
||||
;;
|
||||
5)
|
||||
[ "$hosts_opt" = "ON" ] && hosts_opt=OFF || hosts_opt=ON
|
||||
setconfig hosts_opt $hosts_opt
|
||||
set_dns_mod
|
||||
;;
|
||||
6)
|
||||
[ "$ecs_subnet" = "ON" ] && ecs_subnet=OFF || ecs_subnet=ON
|
||||
setconfig ecs_subnet "$ecs_subnet"
|
||||
set_dns_mod
|
||||
;;
|
||||
7)
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[31m仅限搭配第三方DNS服务(AdGuard、SmartDNS……)使用!\033[0m"
|
||||
echo -e "\033[33m设置为第三方DNS服务的监听端口即可修改防火墙劫持!\n建议在第三方DNS服务中将上游DNS指向【localhost:$dns_port】\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
read -p "请输入第三方DNS服务的监听端口(0重置端口) > " num
|
||||
if [ "$num" = 0 ];then
|
||||
dns_redir_port="$dns_port"
|
||||
setconfig dns_redir_port
|
||||
elif [ "$num" -lt 65535 -a "$num" -ge 1 ];then
|
||||
if ckcmd netstat;then
|
||||
port_test=$(netstat -ntul | grep -E ":$num[[:space:]]")
|
||||
else
|
||||
port_test=0
|
||||
fi
|
||||
if [ -n "$port_test" ];then
|
||||
dns_redir_port="$num"
|
||||
setconfig dns_redir_port "$dns_redir_port"
|
||||
else
|
||||
echo -e "\033[33m此端口未检测到已运行的DNS服务!\033[0m"
|
||||
fi
|
||||
else
|
||||
errornum
|
||||
fi
|
||||
sleep 1
|
||||
set_dns_mod
|
||||
;;
|
||||
8)
|
||||
echo "-----------------------------------------------"
|
||||
fake_ip_filter
|
||||
set_dns_mod
|
||||
;;
|
||||
9)
|
||||
set_dns_adv
|
||||
set_dns_mod
|
||||
;;
|
||||
*)
|
||||
errornum
|
||||
;;
|
||||
set_dns_mod
|
||||
;;
|
||||
8)
|
||||
fake_ip_filter
|
||||
set_dns_mod
|
||||
;;
|
||||
9)
|
||||
set_dns_adv
|
||||
set_dns_mod
|
||||
;;
|
||||
*)
|
||||
errornum
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
fake_ip_filter() {
|
||||
echo -e "\033[32m用于解决Fake-ip模式下部分地址或应用无法连接的问题\033[0m"
|
||||
echo -e "\033[31m脚本已经内置了大量地址,你只需要添加出现问题的地址!\033[0m"
|
||||
echo -e "\033[36m示例:a.b.com"
|
||||
echo -e "示例:*.b.com"
|
||||
echo -e "示例:*.*.b.com\033[0m"
|
||||
echo -e "\033[32m$DNS_FAKEIP_DESC\033[0m"
|
||||
echo -e "\033[31m$DNS_FAKEIP_TIP\033[0m"
|
||||
echo -e "\033[36m$DNS_FAKEIP_EXAMPLE\033[0m"
|
||||
echo "-----------------------------------------------"
|
||||
if [ -s ${CRASHDIR}/configs/fake_ip_filter ]; then
|
||||
echo -e "\033[33m已添加Fake-ip过滤地址:\033[0m"
|
||||
cat ${CRASHDIR}/configs/fake_ip_filter | awk '{print NR" "$1}'
|
||||
if [ -s "$CRASHDIR/configs/fake_ip_filter" ]; then
|
||||
echo -e "\033[33m$DNS_FAKEIP_EXIST\033[0m"
|
||||
awk '{print NR" "$1}' "$CRASHDIR/configs/fake_ip_filter"
|
||||
else
|
||||
echo -e "\033[33m你还未添加Fake-ip过滤地址\033[0m"
|
||||
echo -e "\033[33m$DNS_FAKEIP_EMPTY\033[0m"
|
||||
fi
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[32m输入数字直接移除对应地址,输入地址直接添加!\033[0m"
|
||||
read -p "请输入数字或地址 > " input
|
||||
read -p "$DNS_FAKEIP_EDIT > " input
|
||||
case "$input" in
|
||||
0) ;;
|
||||
'') ;;
|
||||
*)
|
||||
if [ $input -ge 1 ] 2>/dev/null; then
|
||||
sed -i "${input}d" ${CRASHDIR}/configs/fake_ip_filter 2>/dev/null
|
||||
echo -e "\033[32m移除成功!\033[0m"
|
||||
else
|
||||
echo -e "你输入的地址是:\033[32m$input\033[0m"
|
||||
read -p "确认添加?(1/0) > " res
|
||||
[ "$res" = 1 ] && echo $input >>${CRASHDIR}/configs/fake_ip_filter
|
||||
fi
|
||||
sleep 1
|
||||
fake_ip_filter
|
||||
;;
|
||||
0|'') ;;
|
||||
*)
|
||||
if [ "$input" -ge 1 ] 2>/dev/null; then
|
||||
sed -i "${input}d" "$CRASHDIR/configs/fake_ip_filter"
|
||||
echo -e "\033[32m$COMMON_REMOVE_OK\033[0m"
|
||||
else
|
||||
echo -e "$COMMON_YOUR_INPUT \033[32m$input\033[0m"
|
||||
read -p "$COMMON_CONFIRM" res
|
||||
[ "$res" = 1 ] && echo "$input" >>"$CRASHDIR/configs/fake_ip_filter"
|
||||
fi
|
||||
sleep 1
|
||||
fake_ip_filter
|
||||
;;
|
||||
esac
|
||||
}
|
||||
set_dns_adv() { #DNS详细设置
|
||||
|
||||
set_dns_adv() { # DNS详细设置
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "当前基础DNS:\033[32m$dns_nameserver\033[0m"
|
||||
echo -e "PROXY-DNS:\033[36m$dns_fallback\033[0m"
|
||||
echo -e "解析DNS:\033[33m$dns_resolver\033[0m"
|
||||
echo -e "多个DNS地址请用\033[30;47m“|”\033[0m或者\033[30;47m“, ”\033[0m分隔输入"
|
||||
echo -e "\033[33m必须拥有本地根证书文件才能使用dot/doh类型的加密dns\033[0m"
|
||||
echo -e "\033[31m注意singbox内核只有首个dns会被加载!\033[0m"
|
||||
echo -e "DIRECT-DNS :\033[32m$dns_nameserver\033[0m"
|
||||
echo -e "PROXY-DNS :\033[36m$dns_fallback\033[0m"
|
||||
echo -e "DEFAULT-DNS:\033[33m$dns_resolver\033[0m"
|
||||
|
||||
echo -e "$DNS_ADV_SPLIT"
|
||||
echo -e "\033[33m$DNS_ADV_CERT\033[0m"
|
||||
echo -e "\033[31m$DNS_ADV_SINGBOX_LIMIT\033[0m"
|
||||
|
||||
echo "-----------------------------------------------"
|
||||
echo -e " 1 修改\033[32m基础DNS\033[0m"
|
||||
echo -e " 2 修改\033[36mPROXY-DNS\033[0m(该DNS查询会经过节点)"
|
||||
echo -e " 3 修改\033[33m解析DNS\033[0m(必须是IP,用于解析其他DNS)"
|
||||
echo -e " 4 一键配置\033[32m加密DNS\033[0m"
|
||||
echo -e " 9 \033[33m重置\033[0m默认DNS配置"
|
||||
echo -e " 0 返回上级菜单"
|
||||
echo -e " 1 $DNS_ADV_EDIT_DIRECT"
|
||||
echo -e " 2 $DNS_ADV_EDIT_PROXY"
|
||||
echo -e " 3 $DNS_ADV_EDIT_DEFAULT"
|
||||
echo -e " 4 \033[32m$DNS_ADV_AUTO_ENCRYPT\033[0m"
|
||||
echo -e " 9 \033[33m$DNS_ADV_RESET\033[0m"
|
||||
echo -e " 0 $COMMON_BACK"
|
||||
echo "-----------------------------------------------"
|
||||
read -p "请输入对应数字 > " num
|
||||
|
||||
read -p "$COMMON_INPUT > " num
|
||||
|
||||
case "$num" in
|
||||
0) ;;
|
||||
1)
|
||||
read -p "请输入新的DNS > " dns_nameserver
|
||||
dns_nameserver=$(echo $dns_nameserver | sed 's#|#\,\ #g')
|
||||
if [ -n "$dns_nameserver" ]; then
|
||||
setconfig dns_nameserver "'$dns_nameserver'"
|
||||
echo -e "\033[32m设置成功!!!\033[0m"
|
||||
fi
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
2)
|
||||
read -p "请输入新的DNS > " dns_fallback
|
||||
dns_fallback=$(echo $dns_fallback | sed 's/|/\,\ /g')
|
||||
if [ -n "$dns_fallback" ]; then
|
||||
setconfig dns_fallback "'$dns_fallback'"
|
||||
echo -e "\033[32m设置成功!!!\033[0m"
|
||||
fi
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
3)
|
||||
read -p "请输入新的DNS > " text
|
||||
if echo "$text" | grep -qE '://.*::'; then
|
||||
echo -e "\033[31m此选项暂不支持ipv6加密DNS!!!\033[0m"
|
||||
elif [ -n "$text" ]; then
|
||||
dns_resolver=$(echo $text | sed 's/|/\,\ /g')
|
||||
setconfig dns_resolver "'$dns_resolver'"
|
||||
echo -e "\033[32m设置成功!!!\033[0m"
|
||||
fi
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
4)
|
||||
echo "-----------------------------------------------"
|
||||
openssldir="$(openssl version -d 2>&1 | awk -F '"' '{print $2}')"
|
||||
if [ -s "$openssldir/certs/ca-certificates.crt" ] || [ -s "/etc/ssl/certs/ca-certificates.crt" ] ||
|
||||
echo "$crashcore" | grep -qE 'meta|singbox'; then
|
||||
dns_nameserver='https://dns.alidns.com/dns-query, https://doh.pub/dns-query'
|
||||
dns_fallback='https://cloudflare-dns.com/dns-query, https://dns.google/dns-query, https://doh.opendns.com/dns-query'
|
||||
dns_resolver='https://223.5.5.5/dns-query, 2400:3200::1'
|
||||
setconfig dns_nameserver "'$dns_nameserver'"
|
||||
setconfig dns_fallback "'$dns_fallback'"
|
||||
setconfig dns_resolver "'$dns_resolver'"
|
||||
echo -e "\033[32m已设置加密DNS,如出现DNS解析问题,请尝试重置DNS配置!\033[0m"
|
||||
else
|
||||
echo -e "\033[31m找不到根证书文件,无法启用加密DNS,Linux系统请自行搜索安装OpenSSL的方式!\033[0m"
|
||||
fi
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
9)
|
||||
setconfig dns_nameserver
|
||||
setconfig dns_fallback
|
||||
setconfig dns_resolver
|
||||
. "$CRASHDIR"/libs/get_config.sh
|
||||
echo -e "\033[33mDNS配置已重置!!!\033[0m"
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
*)
|
||||
errornum
|
||||
sleep 1
|
||||
;;
|
||||
0) ;;
|
||||
1)
|
||||
read -p "$DNS_INPUT_NEW" dns_nameserver
|
||||
dns_nameserver=$(echo "$dns_nameserver" | sed 's#|#,\ #g')
|
||||
[ -n "$dns_nameserver" ] && setconfig dns_nameserver "'$dns_nameserver'"
|
||||
echo -e "\033[32m$COMMON_SUCCESS\033[0m"
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
2)
|
||||
read -p "$DNS_INPUT_NEW" dns_fallback
|
||||
dns_fallback=$(echo "$dns_fallback" | sed 's#|#,\ #g')
|
||||
[ -n "$dns_fallback" ] && setconfig dns_fallback "'$dns_fallback'"
|
||||
echo -e "\033[32m$COMMON_SUCCESS\033[0m"
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
3)
|
||||
read -p "$DNS_INPUT_NEW" text
|
||||
if echo "$text" | grep -qE '://.*::'; then
|
||||
echo -e "\033[31m$DNS_IPV6_NOT_SUPPORT\033[0m"
|
||||
else
|
||||
dns_resolver=$(echo "$text" | sed 's#|#,\ #g')
|
||||
setconfig dns_resolver "'$dns_resolver'"
|
||||
echo -e "\033[32m$COMMON_SUCCESS\033[0m"
|
||||
fi
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
4)
|
||||
if echo "$crashcore" | grep -qE 'meta|singbox'; then
|
||||
dns_nameserver='https://dns.alidns.com/dns-query, https://doh.pub/dns-query'
|
||||
dns_fallback='https://cloudflare-dns.com/dns-query, https://dns.google/dns-query, https://doh.opendns.com/dns-query'
|
||||
dns_resolver='https://223.5.5.5/dns-query, 2400:3200::1'
|
||||
setconfig dns_nameserver "'$dns_nameserver'"
|
||||
setconfig dns_fallback "'$dns_fallback'"
|
||||
setconfig dns_resolver "'$dns_resolver'"
|
||||
echo -e "\033[32m$DNS_ENCRYPT_OK\033[0m"
|
||||
else
|
||||
echo -e "\033[31m$DNS_CORE_REQUIRE\033[0m"
|
||||
fi
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
9)
|
||||
setconfig dns_nameserver
|
||||
setconfig dns_fallback
|
||||
setconfig dns_resolver
|
||||
. "$CRASHDIR/libs/get_config.sh"
|
||||
echo -e "\033[32m$COMMON_SUCCESS\033[0m"
|
||||
sleep 1
|
||||
set_dns_adv
|
||||
;;
|
||||
*)
|
||||
errornum
|
||||
sleep 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user