mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-10 23:41:22 +00:00
~Add i18n support for 2_settings.sh
This commit is contained in:
101
scripts/lang/chs/2_settings.lang
Normal file
101
scripts/lang/chs/2_settings.lang
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
# =================================================
|
||||||
|
# Settings main menu
|
||||||
|
# =================================================
|
||||||
|
SET_MENU_TITLE="欢迎使用功能设置菜单:"
|
||||||
|
SET_MENU_REDIR="路由模式设置"
|
||||||
|
SET_MENU_DNS="DNS设置"
|
||||||
|
SET_MENU_FW_FILTER="透明路由流量过滤"
|
||||||
|
SET_MENU_SKIP_CERT="跳过证书验证"
|
||||||
|
SET_MENU_SNIFFER="启用域名嗅探"
|
||||||
|
SET_MENU_ADV_PORT="自定义端口及密钥"
|
||||||
|
SET_MENU_IPV6="IPv6设置"
|
||||||
|
SET_MENU_RESET="重置/备份/还原脚本设置"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Main menu messages
|
||||||
|
# =================================================
|
||||||
|
SET_WARN_NONROOT="非root用户可能无法正确配置其他模式,是否继续?"
|
||||||
|
SET_SKIP_CERT_ON="已开启跳过本地证书验证!"
|
||||||
|
SET_SKIP_CERT_OFF="已关闭跳过本地证书验证!"
|
||||||
|
|
||||||
|
SET_SNIFFER_CORE_SWITCH="已自动切换至Meta内核(域名嗅探需要)"
|
||||||
|
SET_SNIFFER_LOCKED="当前内核与DNS模式组合下,域名嗅探无法关闭!"
|
||||||
|
|
||||||
|
SET_CORE_RUNNING="检测到服务正在运行,需要先停止服务!"
|
||||||
|
SET_CORE_STOP_CONFIRM="是否停止服务?"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Backup / Restore / Reset
|
||||||
|
# =================================================
|
||||||
|
SET_BACKUP="备份脚本设置"
|
||||||
|
SET_RESTORE="还原脚本设置"
|
||||||
|
SET_RESET="重置脚本设置"
|
||||||
|
|
||||||
|
SET_BACKUP_OK="脚本设置已备份!"
|
||||||
|
SET_RESTORE_OK="脚本设置已还原!(被覆盖配置已备份)"
|
||||||
|
SET_RESET_OK="脚本设置已重置!(旧配置已备份)"
|
||||||
|
SET_BACKUP_MISS="未找到备份文件,请先备份!"
|
||||||
|
SET_NEED_RESTART="请重新启动脚本以生效!"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Redir mode
|
||||||
|
# =================================================
|
||||||
|
SET_REDIR_DEFAULT="Redir模式"
|
||||||
|
SET_REDIR_CURRENT="当前路由模式为:"
|
||||||
|
SET_CORE_CURRENT="ShellCrash 核心为:"
|
||||||
|
SET_REDIR_RESTART_HINT="切换模式后需要手动重启服务以生效!"
|
||||||
|
|
||||||
|
SET_REDIR_APPLIED="已设为"
|
||||||
|
|
||||||
|
SET_REDIR_REDIR="Redir模式"
|
||||||
|
SET_REDIR_MIX="混合模式"
|
||||||
|
SET_REDIR_TPROXY="Tproxy模式"
|
||||||
|
SET_REDIR_TUN="Tun模式"
|
||||||
|
|
||||||
|
SET_REDIR_REDIRDES="Redir转发TCP,不转发UDP"
|
||||||
|
SET_REDIR_MIXDES="Redir转发TCP,Tun转发UDP"
|
||||||
|
SET_REDIR_TPROXYDES="Tproxy转发TCP&UDP"
|
||||||
|
SET_REDIR_TUNDES="Tun转发TCP&UDP(占用高不推荐)"
|
||||||
|
|
||||||
|
SET_NO_TUN="设备未检测到Tun内核模块,请安装相关依赖或选择其他模式!"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Firewall / VM
|
||||||
|
# =================================================
|
||||||
|
SET_FW_AREA="设置路由劫持范围"
|
||||||
|
SET_VM_REDIR="容器/虚拟机劫持"
|
||||||
|
SET_FW_SWITCH="切换防火墙应用"
|
||||||
|
|
||||||
|
SET_FW_AREA_DESC="仅局域网 仅本机 局域网+本机 纯净模式 旁路转发"
|
||||||
|
|
||||||
|
FW_AREA_NOTE="如你使用了第三方DNS如smartdns等,请勿启用本机劫持或使用shellcrash用户执行!"
|
||||||
|
FW_AREA_LAN="仅劫持局域网流量"
|
||||||
|
FW_AREA_LOCAL="仅劫持本机流量"
|
||||||
|
FW_AREA_BOTH="劫持局域网 + 本机流量"
|
||||||
|
FW_AREA_NONE="不配置流量劫持(纯净模式)"
|
||||||
|
|
||||||
|
VM_DETECT_DESC="默认的容器/虚拟机网段为:"
|
||||||
|
VM_ENABLE_AUTO="启用劫持并使用自动检测的网段"
|
||||||
|
VM_ENABLE_MANUAL="启用劫持并手动指定网段"
|
||||||
|
VM_DISABLE="禁用劫持"
|
||||||
|
VM_INPUT_INFO="多个网段请用空格连接,可使用【ip route】命令查看,例如:"
|
||||||
|
VM_INPUT_NET="请输入自定义网段"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Advanced config
|
||||||
|
# =================================================
|
||||||
|
ADV_HTTP_PORT="修改HTTP/SOCKS5端口"
|
||||||
|
ADV_HTTP_AUTH="设置HTTP/SOCKS5认证"
|
||||||
|
ADV_REDIR_PORT="修改Redir/Tproxy端口"
|
||||||
|
ADV_DNS_PORT="修改DNS监听端口"
|
||||||
|
ADV_PANEL_PORT="修改面板访问端口"
|
||||||
|
ADV_PANEL_PASS="设置面板访问密码"
|
||||||
|
ADV_PANEL_PASS_INPUT="请输入面板访问密码(输入0删除)"
|
||||||
|
ADV_HOST="自定义本机 Host 地址"
|
||||||
|
ADV_TABLE="自定义路由表"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# IPv6
|
||||||
|
# =================================================
|
||||||
|
IPV6_REDIR="IPv6透明路由(劫持IPv6流量)"
|
||||||
|
IPV6_DNS="IPv6-DNS解析(是否返回IPv6地址)"
|
||||||
5
scripts/lang/chs/common.lang
Normal file
5
scripts/lang/chs/common.lang
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
COMMON_INPUT="请输入对应数字"
|
||||||
|
COMMON_BACK="返回上级菜单"
|
||||||
|
COMMON_SUCCESS="设置成功!"
|
||||||
|
COMMON_UNSET="未设置"
|
||||||
101
scripts/lang/en/2_settings.lang
Normal file
101
scripts/lang/en/2_settings.lang
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
# =================================================
|
||||||
|
# Settings main menu
|
||||||
|
# =================================================
|
||||||
|
SET_MENU_TITLE="Welcome to the Function Settings Menu:"
|
||||||
|
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_ADV_PORT="Custom Ports and Secrets"
|
||||||
|
SET_MENU_IPV6="IPv6 Settings"
|
||||||
|
SET_MENU_RESET="Reset / Backup / Restore Script Settings"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Main menu messages
|
||||||
|
# =================================================
|
||||||
|
SET_WARN_NONROOT="Non-root users may not be able to configure some modes correctly. Continue anyway?"
|
||||||
|
SET_SKIP_CERT_ON="Skipping local certificate verification is now ENABLED!"
|
||||||
|
SET_SKIP_CERT_OFF="Skipping local certificate verification is now DISABLED!"
|
||||||
|
|
||||||
|
SET_SNIFFER_CORE_SWITCH="Automatically switched to Meta core (required for domain sniffing)"
|
||||||
|
SET_SNIFFER_LOCKED="Domain sniffing cannot be disabled with the current core and DNS mode combination!"
|
||||||
|
|
||||||
|
SET_CORE_RUNNING="Service is currently running and must be stopped first!"
|
||||||
|
SET_CORE_STOP_CONFIRM="Do you want to stop the service?"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Backup / Restore / Reset
|
||||||
|
# =================================================
|
||||||
|
SET_BACKUP="Backup Script Settings"
|
||||||
|
SET_RESTORE="Restore Script Settings"
|
||||||
|
SET_RESET="Reset Script Settings"
|
||||||
|
|
||||||
|
SET_BACKUP_OK="Script settings have been backed up!"
|
||||||
|
SET_RESTORE_OK="Script settings have been restored! (Overwritten config has been backed up)"
|
||||||
|
SET_RESET_OK="Script settings have been reset! (Old config has been backed up)"
|
||||||
|
SET_BACKUP_MISS="Backup file not found. Please back up first!"
|
||||||
|
SET_NEED_RESTART="Please restart the script for changes to take effect!"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Redir mode
|
||||||
|
# =================================================
|
||||||
|
SET_REDIR_DEFAULT="Redir Mode"
|
||||||
|
SET_REDIR_CURRENT="Current routing mode:"
|
||||||
|
SET_CORE_CURRENT="ShellCrash core:"
|
||||||
|
SET_REDIR_RESTART_HINT="You must manually restart the service for the change to take effect!"
|
||||||
|
|
||||||
|
SET_REDIR_APPLIED="Routing mode set to"
|
||||||
|
|
||||||
|
SET_REDIR_REDIR="Redir Mode"
|
||||||
|
SET_REDIR_MIX="Mixed Mode"
|
||||||
|
SET_REDIR_TPROXY="Tproxy Mode"
|
||||||
|
SET_REDIR_TUN="Tun Mode"
|
||||||
|
|
||||||
|
SET_REDIR_REDIRDES="Redirect TCP traffic only (no UDP)"
|
||||||
|
SET_REDIR_MIXDES="Redirect TCP via Redir, UDP via Tun"
|
||||||
|
SET_REDIR_TPROXYDES="Tproxy forwards both TCP UDP"
|
||||||
|
SET_REDIR_TUNDES="Tun forwards both TCP UDP (high resource usage)"
|
||||||
|
|
||||||
|
SET_NO_TUN="Tun kernel module not detected. Please install required dependencies or select another mode!"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Firewall / VM
|
||||||
|
# =================================================
|
||||||
|
SET_FW_AREA="Set Routing Hijack Scope"
|
||||||
|
SET_VM_REDIR="Container / VM Hijacking"
|
||||||
|
SET_FW_SWITCH="Switch Firewall Backend"
|
||||||
|
|
||||||
|
SET_FW_AREA_DESC="LAN Only Local Only LAN+Local Pure Mode Bypass Forwarding"
|
||||||
|
|
||||||
|
FW_AREA_NOTE="If you are using a third-party DNS like SmartDNS, \ndo not enable local hijacking or run the service as a ShellCrash user"
|
||||||
|
FW_AREA_LAN="Hijack LAN traffic only"
|
||||||
|
FW_AREA_LOCAL="Hijack local device traffic only"
|
||||||
|
FW_AREA_BOTH="Hijack both LAN and local device traffic"
|
||||||
|
FW_AREA_NONE="Do not hijack traffic (Pure mode)"
|
||||||
|
|
||||||
|
VM_DETECT_DESC="Default Container/VM Subnet:"
|
||||||
|
VM_ENABLE_AUTO="Enable hijacking using automatically detected subnets"
|
||||||
|
VM_ENABLE_MANUAL="Enable hijacking and manually specify subnets"
|
||||||
|
VM_DISABLE="Disable hijacking"
|
||||||
|
VM_INPUT_INFO="Separate multiple segments with spaces. Check your configuration using ip route. Example:"
|
||||||
|
VM_INPUT_NET="Please enter cust subnets"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Advanced config
|
||||||
|
# =================================================
|
||||||
|
ADV_HTTP_PORT="Change HTTP / SOCKS5 Port"
|
||||||
|
ADV_HTTP_AUTH="Set HTTP / SOCKS5 Authentication"
|
||||||
|
ADV_REDIR_PORT="Change Redir / Tproxy Ports"
|
||||||
|
ADV_DNS_PORT="Change DNS Listening Port"
|
||||||
|
ADV_PANEL_PORT="Change Web Panel Port"
|
||||||
|
ADV_PANEL_PASS="Set Web Panel Password"
|
||||||
|
ADV_PANEL_PASS_INPUT="Enter web panel password (enter 0 to remove)"
|
||||||
|
ADV_HOST="Custom Local Host Address"
|
||||||
|
ADV_TABLE="Custom Routing Table"
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# IPv6
|
||||||
|
# =================================================
|
||||||
|
IPV6_REDIR="IPv6 Transparent Routing (Hijack IPv6 Traffic)"
|
||||||
|
IPV6_DNS="IPv6 DNS Resolution (Return IPv6 addresses)"
|
||||||
5
scripts/lang/en/common.lang
Normal file
5
scripts/lang/en/common.lang
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
COMMON_INPUT="Please enter a number"
|
||||||
|
COMMON_BACK="Back"
|
||||||
|
COMMON_SUCCESS="Successfully set!"
|
||||||
|
COMMON_UNSET="Not set"
|
||||||
@@ -4,6 +4,8 @@
|
|||||||
[ -n "$__IS_MODULE_2_SETTINGS_LOADED" ] && return
|
[ -n "$__IS_MODULE_2_SETTINGS_LOADED" ] && return
|
||||||
__IS_MODULE_2_SETTINGS_LOADED=1
|
__IS_MODULE_2_SETTINGS_LOADED=1
|
||||||
|
|
||||||
|
load_lang 2_settings
|
||||||
|
|
||||||
# 功能设置
|
# 功能设置
|
||||||
settings() {
|
settings() {
|
||||||
while true; do
|
while true; do
|
||||||
@@ -13,35 +15,35 @@ settings() {
|
|||||||
[ -z "$dns_mod" ] && dns_mod='redir_host'
|
[ -z "$dns_mod" ] && dns_mod='redir_host'
|
||||||
|
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "\033[30;47m欢迎使用功能设置菜单:\033[0m"
|
echo -e "\033[30;47m$SET_MENU_TITLE\033[0m"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 1 路由模式设置: \033[36m$redir_mod\033[0m"
|
echo -e " 1 $SET_MENU_REDIR:\t\033[36m$redir_mod\033[0m"
|
||||||
echo -e " 2 DNS设置: \033[36m$dns_mod\033[0m"
|
echo -e " 2 $SET_MENU_DNS:\t\t\033[36m$dns_mod\033[0m"
|
||||||
echo -e " 3 透明路由\033[32m流量过滤\033[0m"
|
echo -e " 3 $SET_MENU_FW_FILTER"
|
||||||
[ "$disoverride" != "1" ] && {
|
[ "$disoverride" != "1" ] && {
|
||||||
echo -e " 4 跳过证书验证: \033[36m$skip_cert\033[0m"
|
echo -e " 4 $SET_MENU_SKIP_CERT:\t\033[36m$skip_cert\033[0m"
|
||||||
echo -e " 5 启用域名嗅探: \033[36m$sniffer\033[0m"
|
echo -e " 5 $SET_MENU_SNIFFER:\t\033[36m$sniffer\033[0m"
|
||||||
echo -e " 6 自定义\033[32m端口及秘钥\033[0m"
|
echo -e " 6 $SET_MENU_ADV_PORT"
|
||||||
}
|
}
|
||||||
echo -e " 8 ipv6设置: \033[36m$ipv6_redir\033[0m"
|
echo -e " 8 $SET_MENU_IPV6:\t\t\033[36m$ipv6_redir\033[0m"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 9 \033[31m重置/备份/还原\033[0m脚本设置"
|
echo -e " 9 \033[31m$SET_MENU_RESET\033[0m"
|
||||||
echo -e " 0 返回上级菜单 \033[0m"
|
echo -e " 0 $COMMON_BACK"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
read -p "请输入对应数字 > " num
|
read -p "$COMMON_INPUT > " num
|
||||||
|
|
||||||
case "$num" in
|
case "$num" in
|
||||||
"" | 0)
|
"" | 0)
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
1)
|
1)
|
||||||
if [ "$USER" != "root" -a "$USER" != "admin" ]; then
|
if [ "$USER" != root -a "$USER" != admin ]; then
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
read -p "非root用户可能无法正确配置其他模式!依然尝试吗?(1/0) > " res
|
read -p "$SET_WARN_NONROOT (1/0) > " res
|
||||||
[ "$res" = 1 ] && set_redir_mod
|
[ "$res" = 1 ] && set_redir_mod
|
||||||
else
|
else
|
||||||
set_redir_mod
|
set_redir_mod
|
||||||
fi
|
fi
|
||||||
sleep 1
|
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
. "$CRASHDIR"/menus/dns.sh && set_dns_mod
|
. "$CRASHDIR"/menus/dns.sh && set_dns_mod
|
||||||
@@ -53,43 +55,38 @@ settings() {
|
|||||||
;;
|
;;
|
||||||
4)
|
4)
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
if [ "$skip_cert" = "OFF" ] >/dev/null 2>&1; then
|
if [ "$skip_cert" = OFF ]; then
|
||||||
echo -e "\033[33m已设为开启跳过本地证书验证!!\033[0m"
|
|
||||||
skip_cert=ON
|
skip_cert=ON
|
||||||
|
echo -e "\033[33m$SET_SKIP_CERT_ON\033[0m"
|
||||||
else
|
else
|
||||||
echo -e "\033[33m已设为禁止跳过本地证书验证!!\033[0m"
|
|
||||||
skip_cert=OFF
|
skip_cert=OFF
|
||||||
|
echo -e "\033[33m$SET_SKIP_CERT_OFF\033[0m"
|
||||||
fi
|
fi
|
||||||
setconfig skip_cert $skip_cert
|
setconfig skip_cert $skip_cert
|
||||||
;;
|
;;
|
||||||
5)
|
5)
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
if [ "$sniffer" = "OFF" ]; then
|
if [ "$sniffer" = OFF ]; then
|
||||||
if [ "$crashcore" = "clash" ]; then
|
if [ "$crashcore" = clash ]; then
|
||||||
rm -rf ${TMPDIR}/CrashCore
|
rm -rf "$TMPDIR/CrashCore" "$CRASHDIR/CrashCore" "$CRASHDIR/CrashCore.tar.gz"
|
||||||
rm -rf "$CRASHDIR"/CrashCore
|
|
||||||
rm -rf "$CRASHDIR"/CrashCore.tar.gz
|
|
||||||
crashcore=meta
|
crashcore=meta
|
||||||
setconfig crashcore $crashcore
|
setconfig crashcore $crashcore
|
||||||
echo "已将ShellCrash内核切换为Meta内核!域名嗅探依赖Meta或者高版本clashpre内核!"
|
echo "$SET_SNIFFER_CORE_SWITCH"
|
||||||
fi
|
fi
|
||||||
sniffer=ON
|
sniffer=ON
|
||||||
elif [ "$crashcore" = "clashpre" -a "$dns_mod" = "redir_host" ]; then
|
elif [ "$crashcore" = clashpre -a "$dns_mod" = redir_host ]; then
|
||||||
echo -e "\033[31m使用clashpre内核且开启redir-host模式时无法关闭!\033[0m"
|
echo -e "\033[31m$SET_SNIFFER_LOCKED\033[0m"
|
||||||
else
|
else
|
||||||
sniffer=OFF
|
sniffer=OFF
|
||||||
fi
|
fi
|
||||||
setconfig sniffer $sniffer
|
setconfig sniffer $sniffer
|
||||||
;;
|
;;
|
||||||
6)
|
6)
|
||||||
if [ -n "$(pidof CrashCore)" ]; then
|
if pidof CrashCore >/dev/null; then
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "\033[33m检测到服务正在运行,需要先停止服务!\033[0m"
|
echo -e "\033[33m$SET_CORE_RUNNING\033[0m"
|
||||||
read -p "是否停止服务?(1/0) > " res
|
read -p "$SET_CORE_STOP_CONFIRM (1/0) > " res
|
||||||
if [ "$res" = "1" ]; then
|
[ "$res" = 1 ] && "$CRASHDIR/start.sh" stop && set_adv_config
|
||||||
"$CRASHDIR"/start.sh stop
|
|
||||||
set_adv_config
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
set_adv_config
|
set_adv_config
|
||||||
fi
|
fi
|
||||||
@@ -99,50 +96,44 @@ settings() {
|
|||||||
;;
|
;;
|
||||||
9)
|
9)
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 1 备份脚本设置"
|
echo -e " 1 $SET_BACKUP"
|
||||||
echo -e " 2 还原脚本设置"
|
echo -e " 2 $SET_RESTORE"
|
||||||
echo -e " 3 重置脚本设置"
|
echo -e " 3 $SET_RESET"
|
||||||
echo -e " 0 返回上级菜单"
|
echo -e " 0 $COMMON_BACK"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
read -p "请输入对应数字 > " num
|
read -p "$COMMON_INPUT > " num
|
||||||
if [ -z "$num" ]; then
|
case "$num" in
|
||||||
errornum
|
1) cp -f "$CFG_PATH" "$CFG_PATH.bak" && echo -e "\033[32m$SET_BACKUP_OK\033[0m" ;;
|
||||||
elif [ "$num" = 0 ]; then
|
2)
|
||||||
i=
|
if [ -f "$CFG_PATH.bak" ]; then
|
||||||
elif [ "$num" = 1 ]; then
|
mv -f "$CFG_PATH" "$CFG_PATH.bak2"
|
||||||
cp -f "$CFG_PATH" "$CFG_PATH".bak
|
mv -f "$CFG_PATH.bak" "$CFG_PATH"
|
||||||
echo -e "\033[32m脚本设置已备份!\033[0m"
|
mv -f "$CFG_PATH.bak2" "$CFG_PATH.bak"
|
||||||
elif [ "$num" = 2 ]; then
|
echo -e "\033[32m$SET_RESTORE_OK\033[0m"
|
||||||
if [ -f "$CFG_PATH.bak" ]; then
|
else
|
||||||
mv -f "$CFG_PATH" "$CFG_PATH".bak2
|
echo -e "\033[31m$SET_BACKUP_MISS\033[0m"
|
||||||
mv -f "$CFG_PATH".bak "$CFG_PATH"
|
fi
|
||||||
mv -f "$CFG_PATH".bak2 "$CFG_PATH".bak
|
;;
|
||||||
echo -e "\033[32m脚本设置已还原!(被覆盖的配置已备份!)\033[0m"
|
3)
|
||||||
else
|
mv -f "$CFG_PATH" "$CFG_PATH.bak"
|
||||||
echo -e "\033[31m找不到备份文件,请先备份脚本设置!\033[0m"
|
. "$CRASHDIR/init.sh" >/dev/null
|
||||||
fi
|
echo -e "\033[32m$SET_RESET_OK\033[0m"
|
||||||
elif [ "$num" = 3 ]; then
|
;;
|
||||||
mv -f "$CFG_PATH" "$CFG_PATH".bak
|
esac
|
||||||
. "$CRASHDIR"/init.sh >/dev/null
|
echo -e "\033[33m$SET_NEED_RESTART\033[0m"
|
||||||
echo -e "\033[32m脚本设置已重置!(旧文件已备份!)\033[0m"
|
|
||||||
fi
|
|
||||||
echo -e "\033[33m请重新启动脚本!\033[0m"
|
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
*)
|
*) errornum ;;
|
||||||
errornum
|
|
||||||
sleep 1
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
sleep 1
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
set_redir_config() {
|
set_redir_config() {
|
||||||
setconfig redir_mod $redir_mod
|
setconfig redir_mod "$redir_mod"
|
||||||
setconfig dns_mod $dns_mod
|
setconfig dns_mod "$dns_mod"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "\033[36m已设为 $redir_mod !!\033[0m"
|
echo -e "\033[36m$SET_REDIR_APPLIED $redir_mod\033[0m"
|
||||||
}
|
}
|
||||||
|
|
||||||
# 路由模式设置
|
# 路由模式设置
|
||||||
@@ -154,27 +145,28 @@ set_redir_mod() {
|
|||||||
[ -z "$redir_mod" ] && redir_mod='纯净模式'
|
[ -z "$redir_mod" ] && redir_mod='纯净模式'
|
||||||
firewall_area_dsc=$(echo "仅局域网 仅本机 局域网+本机 纯净模式 主-旁转发($bypass_host)" | cut -d' ' -f$firewall_area)
|
firewall_area_dsc=$(echo "仅局域网 仅本机 局域网+本机 纯净模式 主-旁转发($bypass_host)" | cut -d' ' -f$firewall_area)
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "当前路由模式为:\033[47;30m$redir_mod\033[0m;ShellCrash核心为:\033[47;30m $crashcore \033[0m"
|
echo -e "$SET_REDIR_CURRENT \033[47;30m$redir_mod\033[0m ; $SET_CORE_CURRENT \033[47;30m$crashcore\033[0m"
|
||||||
echo -e "\033[33m切换模式后需要手动重启服务以生效!\033[0m"
|
echo -e "\033[33m$SET_REDIR_RESTART_HINT\033[0m"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
[ $firewall_area -le 3 ] && {
|
[ $firewall_area -le 3 ] && {
|
||||||
echo -e " 1 \033[32mRedir模式\033[0m: Redir转发TCP,不转发UDP"
|
echo -e " 1 \033[32m$SET_REDIR_REDIR\033[0m:\t$SET_REDIR_REDIRDES"
|
||||||
echo -e " 2 \033[36m混合模式\033[0m: Redir转发TCP,Tun转发UDP"
|
echo -e " 2 \033[36m$SET_REDIR_MIX\033[0m:\t$SET_REDIR_MIXDES"
|
||||||
echo -e " 3 \033[32mTproxy模式\033[0m: Tproxy转发TCP&UDP"
|
echo -e " 3 \033[32m$SET_REDIR_TPROXY\033[0m:\t$SET_REDIR_TPROXYDES"
|
||||||
echo -e " 4 \033[33mTun模式\033[0m: Tun转发TCP&UDP(占用高不推荐)"
|
echo -e " 4 \033[33m$SET_REDIR_TUN\033[0m:\t$SET_REDIR_TUNDES"
|
||||||
echo "-----------------------------------------------"
|
echo -e "-----------------------------------------------"
|
||||||
}
|
}
|
||||||
[ "$firewall_area" = 5 ] && {
|
[ "$firewall_area" = 5 ] && {
|
||||||
echo -e " 5 \033[32mTCP旁路转发\033[0m: 仅转发TCP流量至旁路由"
|
echo -e " 5 \033[32mTCP旁路转发\033[0m: 仅转发TCP流量至旁路由"
|
||||||
echo -e " 6 \033[36mT&U旁路转发\033[0m: 转发TCP&UDP流量至旁路由"
|
echo -e " 6 \033[36mT&U旁路转发\033[0m: 转发TCP&UDP流量至旁路由"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
}
|
}
|
||||||
echo -e " 7 设置路由劫持范围: \033[47;30m$firewall_area_dsc\033[0m"
|
echo -e " 7 $SET_FW_AREA:\t\033[47;30m$firewall_area_dsc\033[0m"
|
||||||
echo -e " 8 容器/虚拟机劫持: \033[47;30m$vm_redir\033[0m"
|
echo -e " 8 $SET_VM_REDIR:\t\033[47;30m$vm_redir\033[0m"
|
||||||
echo -e " 9 切换防火墙应用: \033[47;30m$firewall_mod\033[0m"
|
echo -e " 9 $SET_FW_SWITCH:\t\033[47;30m$firewall_mod\033[0m"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo " 0 返回上级菜单"
|
echo -e " 0 $COMMON_BACK"
|
||||||
read -p "请输入对应数字 > " num
|
read -p "$COMMON_INPUT > " num
|
||||||
|
|
||||||
case "$num" in
|
case "$num" in
|
||||||
"" | 0)
|
"" | 0)
|
||||||
break
|
break
|
||||||
@@ -298,22 +290,24 @@ inputport() {
|
|||||||
# 端口设置
|
# 端口设置
|
||||||
set_adv_config() {
|
set_adv_config() {
|
||||||
while true; do
|
while true; do
|
||||||
. "$CFG_PATH" >/dev/null
|
. "$CFG_PATH" >/dev/null
|
||||||
[ -z "$secret" ] && secret=未设置
|
[ -z "$secret" ] && secret="$COMMON_UNSET"
|
||||||
[ -z "$table" ] && table=100
|
[ -z "$table" ] && table=100
|
||||||
[ -z "$authentication" ] && auth=未设置 || auth=******
|
[ -z "$authentication" ] && auth="$COMMON_UNSET" || auth="******"
|
||||||
echo "-----------------------------------------------"
|
|
||||||
echo -e " 1 修改Http/Sock5端口: \033[36m$mix_port\033[0m"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 2 设置Http/Sock5密码: \033[36m$auth\033[0m"
|
echo -e " 1 $ADV_HTTP_PORT:\t\033[36m$mix_port\033[0m"
|
||||||
echo -e " 3 修改Redir/Tproxy端口:\033[36m$redir_port,$((redir_port + 1))\033[0m"
|
echo -e " 2 $ADV_HTTP_AUTH:\t\033[36m$auth\033[0m"
|
||||||
echo -e " 4 修改DNS监听端口: \033[36m$dns_port\033[0m"
|
echo -e " 3 $ADV_REDIR_PORT:\t\033[36m$redir_port,$((redir_port+1))\033[0m"
|
||||||
echo -e " 5 修改面板访问端口: \033[36m$db_port\033[0m"
|
echo -e " 4 $ADV_DNS_PORT:\t\033[36m$dns_port\033[0m"
|
||||||
echo -e " 6 设置面板访问密码: \033[36m$secret\033[0m"
|
echo -e " 5 $ADV_PANEL_PORT:\t\033[36m$db_port\033[0m"
|
||||||
echo -e " 8 自定义本机host地址: \033[36m$host\033[0m"
|
echo -e " 6 $ADV_PANEL_PASS:\t\033[36m$secret\033[0m"
|
||||||
echo -e " 9 自定义路由表: \033[36m$table,$((table + 1))\033[0m"
|
echo -e " 8 $ADV_HOST:\t\033[36m$host\033[0m"
|
||||||
echo -e " 0 返回上级菜单"
|
echo -e " 9 $ADV_TABLE:\t\033[36m$table,$((table+1))\033[0m"
|
||||||
read -p "请输入对应数字 > " num
|
echo -e " 0 $COMMON_BACK"
|
||||||
case "$num" in
|
read -p "$COMMON_INPUT > " num
|
||||||
|
|
||||||
|
case "$num" in
|
||||||
"" | 0)
|
"" | 0)
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
@@ -394,14 +388,14 @@ set_adv_config() {
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
6)
|
6)
|
||||||
read -p "请输入面板访问密码(输入0删除密码) > " secret
|
read -p "$ADV_PANEL_PASS_INPUT > " secret
|
||||||
if [ -n "$secret" ]; then
|
if [ -n "$secret" ]; then
|
||||||
[ "$secret" = "0" ] && secret=""
|
[ "$secret" = "0" ] && secret=""
|
||||||
setconfig secret "$secret"
|
setconfig secret "$secret"
|
||||||
echo -e "\033[32m设置成功!!!\033[0m"
|
echo -e "\033[32m$COMMON_SUCCESS\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
8)
|
8)
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "\033[33m如果你的局域网网段不是192.168.x或172.16.x或10.x开头,请务必修改!\033[0m"
|
echo -e "\033[33m如果你的局域网网段不是192.168.x或172.16.x或10.x开头,请务必修改!\033[0m"
|
||||||
@@ -440,22 +434,20 @@ set_adv_config() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
set_firewall_area() { #路由范围设置
|
set_firewall_area() {
|
||||||
[ -z "$vm_redir" ] && vm_redir='OFF'
|
[ -z "$vm_redir" ] && vm_redir='OFF'
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "\033[31m注意:\033[0m基于桥接网卡的Docker/虚拟机流量,请单独启用!"
|
echo -e "\033[33m$FW_AREA_NOTE\033[0m"
|
||||||
echo -e "\033[33m如你使用了第三方DNS如smartdns等,请勿启用本机劫持或使用shellcrash用户执行!\033[0m"
|
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 1 \033[32m仅劫持局域网流量\033[0m"
|
echo -e " 1 \033[32m$FW_AREA_LAN\033[0m"
|
||||||
echo -e " 2 \033[36m仅劫持本机流量\033[0m"
|
echo -e " 2 \033[36m$FW_AREA_LOCAL\033[0m"
|
||||||
echo -e " 3 \033[32m劫持局域网+本机流量\033[0m"
|
echo -e " 3 \033[32m$FW_AREA_BOTH\033[0m"
|
||||||
echo -e " 4 不配置流量劫持(纯净模式)\033[0m"
|
echo -e " 4 $FW_AREA_NONE"
|
||||||
#echo -e " 5 \033[33m转发局域网流量到旁路由设备\033[0m"
|
echo -e " 0 $COMMON_BACK"
|
||||||
echo -e " 0 返回上级菜单"
|
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
read -p "请输入对应数字 > " num
|
read -p "$COMMON_INPUT > " num
|
||||||
|
|
||||||
case "$num" in
|
case "$num" in
|
||||||
0) ;;
|
|
||||||
[1-4])
|
[1-4])
|
||||||
[ $firewall_area -ge 4 ] && {
|
[ $firewall_area -ge 4 ] && {
|
||||||
redir_mod=Redir模式
|
redir_mod=Redir模式
|
||||||
@@ -496,17 +488,17 @@ set_firewall_vm(){
|
|||||||
vm_ipv4=$(ip a 2>&1 | grep -w 'inet' | grep 'global' | grep 'brd' | grep -E 'docker|podman|virbr|vnet|ovs|vmbr|veth|vmnic|vboxnet|lxcbr|xenbr|vEthernet' | sed 's/.*inet.//g' | sed 's/ br.*$//g' | sed 's/metric.*$//g' | tr '\n' ' ')
|
vm_ipv4=$(ip a 2>&1 | grep -w 'inet' | grep 'global' | grep 'brd' | grep -E 'docker|podman|virbr|vnet|ovs|vmbr|veth|vmnic|vboxnet|lxcbr|xenbr|vEthernet' | sed 's/.*inet.//g' | sed 's/ br.*$//g' | sed 's/metric.*$//g' | tr '\n' ' ')
|
||||||
vm_des='当前获取到'
|
vm_des='当前获取到'
|
||||||
fi
|
fi
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "$vm_des的容器/虚拟机网段为:\033[32m$vm_ipv4\033[0m"
|
echo -e "$VM_DETECT_DESC\033[32m$vm_ipv4\033[0m"
|
||||||
echo -e "如未包含容器网段,请先运行容器再运行脚本或者手动设置网段"
|
echo "-----------------------------------------------"
|
||||||
echo "-----------------------------------------------"
|
echo -e " 1 \033[32m$VM_ENABLE_AUTO\033[0m"
|
||||||
echo -e " 1 \033[32m启用劫持并使用默认网段\033[0m"
|
echo -e " 2 \033[36m$VM_ENABLE_MANUAL\033[0m"
|
||||||
echo -e " 2 \033[36m启用劫持并自定义网段\033[0m"
|
echo -e " 3 \033[31m$VM_DISABLE\033[0m"
|
||||||
echo -e " 3 \033[31m禁用劫持\033[0m"
|
echo -e " 0 $COMMON_BACK"
|
||||||
echo -e " 0 返回上级菜单"
|
echo "-----------------------------------------------"
|
||||||
echo "-----------------------------------------------"
|
read -p "$COMMON_INPUT > " num
|
||||||
read -p "请输入对应数字 > " num
|
|
||||||
case "$num" in
|
case "$num" in
|
||||||
1)
|
1)
|
||||||
if [ -n "$vm_ipv4" ]; then
|
if [ -n "$vm_ipv4" ]; then
|
||||||
vm_redir=ON
|
vm_redir=ON
|
||||||
@@ -514,20 +506,24 @@ set_firewall_vm(){
|
|||||||
echo -e "\033[33m请先运行容器再运行脚本或者手动设置网段\033[0m"
|
echo -e "\033[33m请先运行容器再运行脚本或者手动设置网段\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
echo -e "多个网段请用空格连接,可运行容器后使用【ip route】命令查看网段地址"
|
echo -e "多个网段请用空格连接,可使用【ip route】命令查看,例如:"
|
||||||
echo -e "示例:\033[32m10.88.0.0/16 172.17.0.0/16\033[0m"
|
echo -e "\033[32m10.88.0.0/16 172.17.0.0/16\033[0m"
|
||||||
read -p "请输入自定义网段 > " text
|
read -p "$VM_INPUT_NET > " text
|
||||||
[ -n "$text" ] && vm_ipv4=$text && vm_redir=ON
|
[ -n "$text" ] && vm_ipv4="$text" && vm_redir=ON
|
||||||
;;
|
;;
|
||||||
3)
|
3)
|
||||||
vm_redir=OFF
|
vm_redir=OFF
|
||||||
unset vm_ipv4
|
vm_ipv4=''
|
||||||
|
;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
case "$num" in
|
||||||
|
1-3)
|
||||||
|
setconfig vm_redir "$vm_redir"
|
||||||
|
setconfig vm_ipv4 "'$vm_ipv4'"
|
||||||
;;
|
;;
|
||||||
*) ;;
|
|
||||||
esac
|
esac
|
||||||
setconfig vm_redir $vm_redir
|
|
||||||
setconfig vm_ipv4 "'$vm_ipv4'"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ipv6设置
|
# ipv6设置
|
||||||
@@ -535,12 +531,14 @@ set_ipv6() {
|
|||||||
while true; do
|
while true; do
|
||||||
[ -z "$ipv6_redir" ] && ipv6_redir=OFF
|
[ -z "$ipv6_redir" ] && ipv6_redir=OFF
|
||||||
[ -z "$ipv6_dns" ] && ipv6_dns=ON
|
[ -z "$ipv6_dns" ] && ipv6_dns=ON
|
||||||
|
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 1 ipv6透明路由: \033[36m$ipv6_redir\033[0m ——劫持ipv6流量"
|
echo -e " 1 $IPV6_REDIR:\t\033[36m$ipv6_redir\033[0m"
|
||||||
[ "$disoverride" != "1" ] && echo -e " 2 ipv6-DNS解析: \033[36m$ipv6_dns\033[0m ——决定内置DNS是否返回ipv6地址"
|
[ "$disoverride" != "1" ] && echo -e " 2 $IPV6_DNS:\t\033[36m$ipv6_dns\033[0m"
|
||||||
echo -e " 0 返回上级菜单"
|
echo -e " 0 $COMMON_BACK"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
read -p "请输入对应数字 > " num
|
read -p "$COMMON_INPUT > " num
|
||||||
|
|
||||||
case "$num" in
|
case "$num" in
|
||||||
"" | 0)
|
"" | 0)
|
||||||
break
|
break
|
||||||
@@ -557,8 +555,8 @@ set_ipv6() {
|
|||||||
setconfig ipv6_support $ipv6_support
|
setconfig ipv6_support $ipv6_support
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
[ "$ipv6_dns" = "OFF" ] && ipv6_dns=ON || ipv6_dns=OFF
|
[ "$ipv6_dns" = OFF ] && ipv6_dns=ON || ipv6_dns=OFF
|
||||||
setconfig ipv6_dns $ipv6_dns
|
setconfig ipv6_dns "$ipv6_dns"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
errornum
|
errornum
|
||||||
|
|||||||
Reference in New Issue
Block a user