mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-15 01:42:19 +00:00
已修改 scripts/lang/chs/7_gateway.lang
已修改 scripts/lang/en/7_gateway.lang 已修改 scripts/menus/7_gateway.sh
This commit is contained in:
@@ -14,3 +14,84 @@ GW_INPUT_WSPATH="请输入ws-path路径(输入0删除)"
|
|||||||
GW_INPUT_UUID="请输入UUID(输入0删除)"
|
GW_INPUT_UUID="请输入UUID(输入0删除)"
|
||||||
GW_INPUT_HOST="请输入本机公网IP(4/6)或域名"
|
GW_INPUT_HOST="请输入本机公网IP(4/6)或域名"
|
||||||
GW_SHARE_LINK_HINT="你的分享链接是(请勿随意分享给他人):"
|
GW_SHARE_LINK_HINT="你的分享链接是(请勿随意分享给他人):"
|
||||||
|
GW_MENU_FW_WAN="?????????"
|
||||||
|
GW_MENU_TG_BOT="??Telegram???????"
|
||||||
|
GW_MENU_DDNS="??DDNS????"
|
||||||
|
GW_MENU_VMESS="?????Vmess????"
|
||||||
|
GW_MENU_SHADOWSOCKS="?????ShadowSocks????"
|
||||||
|
GW_MENU_TS="??Tailscale????(?Singbox)"
|
||||||
|
GW_MENU_WG="??Wireguard???(?Singbox)"
|
||||||
|
GW_FW_STOP_WARN="??????????????"
|
||||||
|
GW_CONFIRM_CONTINUE="???????"
|
||||||
|
GW_YES="?"
|
||||||
|
GW_NO="?"
|
||||||
|
GW_NO_BACK="?,??????"
|
||||||
|
GW_FW_MANUAL_PORTS="????????:"
|
||||||
|
GW_FW_AUTO_PORTS="????????:"
|
||||||
|
GW_FW_DEFAULT_BLOCK="??????:"
|
||||||
|
GW_FW_TOGGLE="??/???????:"
|
||||||
|
GW_FW_ADD_PORT="??????(?????????)"
|
||||||
|
GW_FW_REMOVE_PORT="??????????"
|
||||||
|
GW_FW_CLEAR_PORTS="??????????"
|
||||||
|
GW_FW_DISABLE_CONFIRM="??????????"
|
||||||
|
GW_FW_DISABLE_RISK="???????????!"
|
||||||
|
GW_ERR_DUP_PORT="????!??????!"
|
||||||
|
GW_ERR_PORT_RANGE="????!????????(1-65535)!"
|
||||||
|
GW_ERR_INPUT="????!"
|
||||||
|
GW_INPUT_REMOVE_PORT="????????????"
|
||||||
|
GW_INPUT_0_BACK="??? 0 ??????"
|
||||||
|
GW_ERR_PORT_NOT_FOUND="??????????!"
|
||||||
|
GW_TG_CMD_MENU="??ShellCrash??"
|
||||||
|
GW_TG_CMD_HELP="????"
|
||||||
|
GW_TG_WARN="????????,?????????????!"
|
||||||
|
GW_TG_TOGGLE="??/??TG-BOT??"
|
||||||
|
GW_TG_BIND="TG-BOT????"
|
||||||
|
GW_TG_MENUPUSH="???????"
|
||||||
|
GW_TG_BIND_FIRST="????TG-BOT!"
|
||||||
|
GW_TG_BOUND_DETECTED="????????TG??BOT"
|
||||||
|
GW_TG_USE_DIRECT="???????"
|
||||||
|
GW_INBOUND_WARN_PORT="?????????????????????!"
|
||||||
|
GW_INBOUND_WARN_BASIC="?????????,???????????????!"
|
||||||
|
GW_INBOUND_WARN_ILLEGAL="????????????,??????!"
|
||||||
|
GW_VMS_TOGGLE="??/??Vmess??"
|
||||||
|
GW_SET_LISTEN_PORT="??????:"
|
||||||
|
GW_SET_WSPATH="??WS-path(??):"
|
||||||
|
GW_SET_UUID="????-uuid:"
|
||||||
|
GW_GEN_RANDOM_KEY="????????"
|
||||||
|
GW_SET_OBFS_HOST="????host(??):"
|
||||||
|
GW_GEN_SHARE_LINK="????????"
|
||||||
|
GW_FILL_REQUIRED="????????!"
|
||||||
|
GW_ERR_WSPATH="?????path??,????/???!"
|
||||||
|
GW_ERR_UUID="?????UUID??,??????????????!"
|
||||||
|
GW_INPUT_OBFS_HOST="???????host(??0??)"
|
||||||
|
GW_SS_TOGGLE="??/??ShadowSocks??"
|
||||||
|
GW_SS_SELECT_CIPHER="???????????:"
|
||||||
|
GW_SS_SET_PWD="??password:"
|
||||||
|
GW_SS_2022_NOTE_HEADER=" - - - - - - -\033[31m??\033[0m- - - - - - -"
|
||||||
|
GW_SS_2022_REQUIRE=" 2022?????????????password!"
|
||||||
|
GW_SS_2022_PASSWORD_ONLY="2022???????????????password!"
|
||||||
|
GW_TS_WARN="????????????????Tailscale??\n??????????????????????!"
|
||||||
|
GW_TS_KEY_URL="????:\033[32;4mhttps://login.tailscale.com/admin/settings/keys\033[0m"
|
||||||
|
GW_TS_ALLOW_URL="????????????:\033[32;4mhttps://login.tailscale.com\033[0m"
|
||||||
|
GW_TS_SUBNET_EXIT_HINT="???????????????Subnet?EXIT-NODE??"
|
||||||
|
GW_TS_TOGGLE="??/??Tailscale??"
|
||||||
|
GW_TS_SET_AUTHKEY="????(Auth Key)"
|
||||||
|
GW_TS_SUBNET="????????(Subnet)"
|
||||||
|
GW_TS_EXIT_NODE="????????(EXIT-NODE)"
|
||||||
|
GW_TS_HOSTNAME="??????(??)"
|
||||||
|
GW_TS_SET_KEY_FIRST="??????!"
|
||||||
|
GW_TS_INPUT_KEY="?????(??0??)"
|
||||||
|
GW_TS_EXITNODE_WARN="??exitnode???DNS?bug,???????????TailscaleDNS,\n?????????Globalname servers?????????IP???override"
|
||||||
|
GW_TS_INPUT_NAME="????????Tailscale???????"
|
||||||
|
GW_WG_WARN="????????????????WireGuard??\n??????????????????????!"
|
||||||
|
GW_WG_TOGGLE="??/??Wireguard??"
|
||||||
|
GW_WG_SET_ENDPOINT="??Endpoint??:"
|
||||||
|
GW_WG_SET_ENDPOINT_PORT="??Endpoint??:"
|
||||||
|
GW_WG_SET_PUBLIC="????-PublicKey:"
|
||||||
|
GW_WG_SET_PRESHARED="????-PresharedKey:"
|
||||||
|
GW_WG_SET_PRIVATE="????-PrivateKey:"
|
||||||
|
GW_WG_SET_IPV4="????IPV4??:"
|
||||||
|
GW_WG_SET_IPV6="?? ??IPV6??:"
|
||||||
|
GW_INPUT_TEXT_DEL0="???????(???0??)"
|
||||||
|
GW_INPUT_PLAIN="???"
|
||||||
|
GW_INPUT_PWD_DEL0="?????(??0??)"
|
||||||
|
|||||||
@@ -14,3 +14,84 @@ GW_INPUT_WSPATH="Enter ws-path (0 to delete)"
|
|||||||
GW_INPUT_UUID="Enter UUID (0 to delete)"
|
GW_INPUT_UUID="Enter UUID (0 to delete)"
|
||||||
GW_INPUT_HOST="Enter your public IP (v4/v6) or domain"
|
GW_INPUT_HOST="Enter your public IP (v4/v6) or domain"
|
||||||
GW_SHARE_LINK_HINT="Your share link (do not share casually):"
|
GW_SHARE_LINK_HINT="Your share link (do not share casually):"
|
||||||
|
GW_MENU_FW_WAN="Configure WAN Firewall"
|
||||||
|
GW_MENU_TG_BOT="Configure Telegram Control Bot"
|
||||||
|
GW_MENU_DDNS="Configure DDNS Domain"
|
||||||
|
GW_MENU_VMESS="Custom Public Vmess Inbound"
|
||||||
|
GW_MENU_SHADOWSOCKS="Custom Public ShadowSocks Inbound"
|
||||||
|
GW_MENU_TS="Configure Tailscale Intranet (Singbox only)"
|
||||||
|
GW_MENU_WG="Configure Wireguard Client (Singbox only)"
|
||||||
|
GW_FW_STOP_WARN="WAN firewall requires stopping the service first"
|
||||||
|
GW_CONFIRM_CONTINUE="Continue?"
|
||||||
|
GW_YES="Yes"
|
||||||
|
GW_NO="No"
|
||||||
|
GW_NO_BACK="No, back to previous menu"
|
||||||
|
GW_FW_MANUAL_PORTS="Manual allowed ports: "
|
||||||
|
GW_FW_AUTO_PORTS="Auto allowed ports: "
|
||||||
|
GW_FW_DEFAULT_BLOCK="Default blocked ports: "
|
||||||
|
GW_FW_TOGGLE="Enable/Disable WAN firewall: "
|
||||||
|
GW_FW_ADD_PORT="Add allowed ports (can include default blocked ports)"
|
||||||
|
GW_FW_REMOVE_PORT="Remove a specific manual port"
|
||||||
|
GW_FW_CLEAR_PORTS="Clear all manual allowed ports"
|
||||||
|
GW_FW_DISABLE_CONFIRM="Confirm disabling firewall?"
|
||||||
|
GW_FW_DISABLE_RISK="This can pose a serious security risk!"
|
||||||
|
GW_ERR_DUP_PORT="Invalid input! Do not add duplicates!"
|
||||||
|
GW_ERR_PORT_RANGE="Invalid input! Enter a valid number (1-65535)!"
|
||||||
|
GW_ERR_INPUT="Invalid input!"
|
||||||
|
GW_INPUT_REMOVE_PORT="Enter the port to remove"
|
||||||
|
GW_INPUT_0_BACK="Or enter 0 to go back"
|
||||||
|
GW_ERR_PORT_NOT_FOUND="Please enter a port that was added!"
|
||||||
|
GW_TG_CMD_MENU="Open ShellCrash menu"
|
||||||
|
GW_TG_CMD_HELP="View help"
|
||||||
|
GW_TG_WARN="Due to network conditions, this bot only runs when the service is started!"
|
||||||
|
GW_TG_TOGGLE="Enable/Disable TG-BOT service"
|
||||||
|
GW_TG_BIND="TG-BOT binding"
|
||||||
|
GW_TG_MENUPUSH="Push menu on start"
|
||||||
|
GW_TG_BIND_FIRST="Please bind TG-BOT first!"
|
||||||
|
GW_TG_BOUND_DETECTED="Detected an existing TG push bot binding"
|
||||||
|
GW_TG_USE_DIRECT="Use it directly?"
|
||||||
|
GW_INBOUND_WARN_PORT="The configured port will be added to the WAN firewall and allowed automatically!"
|
||||||
|
GW_INBOUND_WARN_BASIC="This script provides basic features only. Use custom config for more needs!"
|
||||||
|
GW_INBOUND_WARN_ILLEGAL="Do not use it for illegal proxying. You are responsible for consequences!"
|
||||||
|
GW_VMS_TOGGLE="Enable/Disable Vmess inbound"
|
||||||
|
GW_SET_LISTEN_PORT="Set listen port:"
|
||||||
|
GW_SET_WSPATH="Set WS-path (optional):"
|
||||||
|
GW_SET_UUID="Set key-uuid:"
|
||||||
|
GW_GEN_RANDOM_KEY="Generate random key"
|
||||||
|
GW_SET_OBFS_HOST="Set obfs host (optional):"
|
||||||
|
GW_GEN_SHARE_LINK="Generate share link"
|
||||||
|
GW_FILL_REQUIRED="Please complete required settings first!"
|
||||||
|
GW_ERR_WSPATH="Invalid path. It must start with '/'."
|
||||||
|
GW_ERR_UUID="Invalid UUID format. Re-enter or use random generation."
|
||||||
|
GW_INPUT_OBFS_HOST="Enter obfs host (0 to delete)"
|
||||||
|
GW_SS_TOGGLE="Enable/Disable ShadowSocks inbound"
|
||||||
|
GW_SS_SELECT_CIPHER="Select cipher to use:"
|
||||||
|
GW_SS_SET_PWD="Set password:"
|
||||||
|
GW_SS_2022_NOTE_HEADER=" - - - - - - -\033[31mNotice\033[0m- - - - - - -"
|
||||||
|
GW_SS_2022_REQUIRE=" 2022 ciphers require a randomly generated password!"
|
||||||
|
GW_SS_2022_PASSWORD_ONLY="2022 ciphers require a script-generated password!"
|
||||||
|
GW_TS_WARN="The default core is built without the Tailscale module to save memory.\nPlease switch to a full custom core if you need it!"
|
||||||
|
GW_TS_KEY_URL="Create key:\033[32;4mhttps://login.tailscale.com/admin/settings/keys\033[0m"
|
||||||
|
GW_TS_ALLOW_URL="Allow advertised routes for non-local targets:\033[32;4mhttps://login.tailscale.com\033[0m"
|
||||||
|
GW_TS_SUBNET_EXIT_HINT="For non-local targets, use Subnet or EXIT-NODE mode in the client"
|
||||||
|
GW_TS_TOGGLE="Enable/Disable Tailscale service"
|
||||||
|
GW_TS_SET_AUTHKEY="Set Auth Key"
|
||||||
|
GW_TS_SUBNET="Advertise subnet routes"
|
||||||
|
GW_TS_EXIT_NODE="Advertise all traffic (EXIT-NODE)"
|
||||||
|
GW_TS_HOSTNAME="Set device name (optional)"
|
||||||
|
GW_TS_SET_KEY_FIRST="Please set the Auth Key first!"
|
||||||
|
GW_TS_INPUT_KEY="Enter Auth Key (0 to delete)"
|
||||||
|
GW_TS_EXITNODE_WARN="The official exitnode DNS has a bug. Either enable domain sniffing and disable Tailscale DNS,\nor set Globalname servers to this device subnet IP in the web UI and enable override."
|
||||||
|
GW_TS_INPUT_NAME="Enter the device name to show in Tailscale"
|
||||||
|
GW_WG_WARN="The default core is built without the WireGuard module to save memory.\nPlease switch to a full custom core if you need it!"
|
||||||
|
GW_WG_TOGGLE="Enable/Disable Wireguard service"
|
||||||
|
GW_WG_SET_ENDPOINT="Set Endpoint address:"
|
||||||
|
GW_WG_SET_ENDPOINT_PORT="Set Endpoint port:"
|
||||||
|
GW_WG_SET_PUBLIC="Set PublicKey:"
|
||||||
|
GW_WG_SET_PRESHARED="Set PresharedKey:"
|
||||||
|
GW_WG_SET_PRIVATE="Set PrivateKey:"
|
||||||
|
GW_WG_SET_IPV4="Set IPv4 address:"
|
||||||
|
GW_WG_SET_IPV6="Optional IPv6 address:"
|
||||||
|
GW_INPUT_TEXT_DEL0="Enter value (Enter or 0 to delete)"
|
||||||
|
GW_INPUT_PLAIN="Enter"
|
||||||
|
GW_INPUT_PWD_DEL0="Enter password (0 to delete)"
|
||||||
|
|||||||
@@ -12,15 +12,15 @@ load_lang 7_gateway
|
|||||||
# 访问与控制主菜单
|
# 访问与控制主菜单
|
||||||
gateway() {
|
gateway() {
|
||||||
while true; do
|
while true; do
|
||||||
comp_box "\033[30;47m访问与控制菜单\033[0m"
|
comp_box "\033[30;47m$GW_TITLE\033[0m"
|
||||||
content_line "1) 配置\033[33m公网访问防火墙 \033[32m$fw_wan\033[0m"
|
content_line "1) $GW_MENU_FW_WAN \033[32m$fw_wan\033[0m"
|
||||||
content_line "2) 配置\033[36mTelegram专属控制机器人 \033[32m$bot_tg_service\033[0m"
|
content_line "2) $GW_MENU_TG_BOT \033[32m$bot_tg_service\033[0m"
|
||||||
content_line "3) 配置\033[36mDDNS自动域名\033[0m"
|
content_line "3) $GW_MENU_DDNS"
|
||||||
[ "$disoverride" != "1" ] && {
|
[ "$disoverride" != "1" ] && {
|
||||||
content_line "4) 自定义\033[33m公网Vmess入站\033[0m节点 \033[32m$vms_service\033[0m"
|
content_line "4) $GW_MENU_VMESS \033[32m$vms_service\033[0m"
|
||||||
content_line "5) 自定义\033[33m公网ShadowSocks入站\033[0m节点 \033[32m$sss_service\033[0m"
|
content_line "5) $GW_MENU_SHADOWSOCKS \033[32m$sss_service\033[0m"
|
||||||
content_line "6) 配置\033[36mTailscale内网穿透\033[0m(限Singbox) \033[32m$ts_service\033[0m"
|
content_line "6) $GW_MENU_TS \033[32m$ts_service\033[0m"
|
||||||
content_line "7) 配置\033[36mWireguard客户端\033[0m(限Singbox) \033[32m$wg_service\033[0m"
|
content_line "7) $GW_MENU_WG \033[32m$wg_service\033[0m"
|
||||||
}
|
}
|
||||||
btm_box "" \
|
btm_box "" \
|
||||||
"0) $COMMON_BACK"
|
"0) $COMMON_BACK"
|
||||||
@@ -31,11 +31,11 @@ gateway() {
|
|||||||
;;
|
;;
|
||||||
1)
|
1)
|
||||||
if [ -n "$(pidof CrashCore)" ] && [ "$firewall_mod" = 'iptables' ]; then
|
if [ -n "$(pidof CrashCore)" ] && [ "$firewall_mod" = 'iptables' ]; then
|
||||||
comp_box "\033[33m公网访问防火墙需要先停止服务\033[0m" \
|
comp_box "\033[33m$GW_FW_STOP_WARN\033[0m" \
|
||||||
"是否确认继续?"
|
"$GW_CONFIRM_CONTINUE"
|
||||||
btm_box "1) 是" \
|
btm_box "1) $GW_YES" \
|
||||||
"0) 否,返回上级菜单"
|
"0) $GW_NO_BACK"
|
||||||
read -r -p "请输入对应标号> " res
|
read -r -p "$COMMON_INPUT> " res
|
||||||
if [ "$res" = 1 ]; then
|
if [ "$res" = 1 ]; then
|
||||||
"$CRASHDIR"/start.sh stop && set_fw_wan
|
"$CRASHDIR"/start.sh stop && set_fw_wan
|
||||||
else
|
else
|
||||||
@@ -61,14 +61,14 @@ gateway() {
|
|||||||
if echo "$crashcore" | grep -q 'sing'; then
|
if echo "$crashcore" | grep -q 'sing'; then
|
||||||
set_tailscale
|
set_tailscale
|
||||||
else
|
else
|
||||||
msg_alert "\033[33m$crashcore内核暂不支持此功能,请先更换内核!\033[0m"
|
msg_alert "\033[33m$crashcore$GW_CORE_UNSUPPORTED\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
if echo "$crashcore" | grep -q 'sing'; then
|
if echo "$crashcore" | grep -q 'sing'; then
|
||||||
set_wireguard
|
set_wireguard
|
||||||
else
|
else
|
||||||
msg_alert "\033[33m$crashcore内核暂不支持此功能,请先更换内核!\033[0m"
|
msg_alert "\033[33m$crashcore$GW_CORE_UNSUPPORTED\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -84,17 +84,17 @@ set_fw_wan() {
|
|||||||
[ -z "$fw_wan" ] && fw_wan=ON
|
[ -z "$fw_wan" ] && fw_wan=ON
|
||||||
line_break
|
line_break
|
||||||
separator_line "="
|
separator_line "="
|
||||||
content_line "\033[31m注意:\033[0m如在vps运行,还需在vps安全策略对相关端口同时放行"
|
content_line "\033[31m$GW_WARN\033[0m$GW_FW_VPS_HINT"
|
||||||
[ -n "$fw_wan_ports" ] &&
|
[ -n "$fw_wan_ports" ] &&
|
||||||
content_line "当前手动放行端口:\033[36m$fw_wan_ports\033[0m"
|
content_line "$GW_FW_MANUAL_PORTS\033[36m$fw_wan_ports\033[0m"
|
||||||
[ -n "$vms_port$sss_port" ] &&
|
[ -n "$vms_port$sss_port" ] &&
|
||||||
content_line "当前自动放行端口:\033[36m$vms_port $sss_port\033[0m"
|
content_line "$GW_FW_AUTO_PORTS\033[36m$vms_port $sss_port\033[0m"
|
||||||
content_line "默认拦截端口:\033[33m$mix_port,$db_port\033[0m"
|
content_line "$GW_FW_DEFAULT_BLOCK\033[33m$mix_port,$db_port\033[0m"
|
||||||
separator_line "="
|
separator_line "="
|
||||||
btm_box "1) 启用/关闭公网防火墙:\033[36m$fw_wan\033[0m" \
|
btm_box "1) $GW_FW_TOGGLE\033[36m$fw_wan\033[0m" \
|
||||||
"2) 添加放行端口(可包含默认拦截端口)" \
|
"2) $GW_FW_ADD_PORT" \
|
||||||
"3) 移除指定手动放行端口" \
|
"3) $GW_FW_REMOVE_PORT" \
|
||||||
"4) 清空全部手动放行端口" \
|
"4) $GW_FW_CLEAR_PORTS" \
|
||||||
"" \
|
"" \
|
||||||
"0) $COMMON_BACK"
|
"0) $COMMON_BACK"
|
||||||
read -r -p "$COMMON_INPUT> " num
|
read -r -p "$COMMON_INPUT> " num
|
||||||
@@ -104,11 +104,11 @@ set_fw_wan() {
|
|||||||
;;
|
;;
|
||||||
1)
|
1)
|
||||||
if [ "$fw_wan" = ON ]; then
|
if [ "$fw_wan" = ON ]; then
|
||||||
comp_box "是否确认关闭防火墙?" \
|
comp_box "$GW_FW_DISABLE_CONFIRM" \
|
||||||
"这会带来极大的安全隐患!"
|
"$GW_FW_DISABLE_RISK"
|
||||||
btm_box "1) 是" \
|
btm_box "1) $GW_YES" \
|
||||||
"0) 否,返回上级菜单"
|
"0) $GW_NO_BACK"
|
||||||
read -r -p "请输入对应标号> " res
|
read -r -p "$COMMON_INPUT> " res
|
||||||
if [ "$res" = 1 ]; then
|
if [ "$res" = 1 ]; then
|
||||||
fw_wan=OFF
|
fw_wan=OFF
|
||||||
else
|
else
|
||||||
@@ -122,14 +122,14 @@ set_fw_wan() {
|
|||||||
2)
|
2)
|
||||||
port_count=$(echo "$fw_wan_ports" | awk -F',' '{print NF}')
|
port_count=$(echo "$fw_wan_ports" | awk -F',' '{print NF}')
|
||||||
if [ "$port_count" -ge 10 ]; then
|
if [ "$port_count" -ge 10 ]; then
|
||||||
msg_alert "\033[31m最多支持设置放行10个端口,请先减少一些!\033[0m"
|
msg_alert "\033[31m$GW_FW_PORT_LIMIT\033[0m"
|
||||||
else
|
else
|
||||||
line_break
|
line_break
|
||||||
read -r -p "$GW_INPUT_ALLOW_PORT> " port
|
read -r -p "$GW_INPUT_ALLOW_PORT> " port
|
||||||
if echo ",$fw_wan_ports," | grep -q ",$port,"; then
|
if echo ",$fw_wan_ports," | grep -q ",$port,"; then
|
||||||
msg_alert "\033[31m输入错误!请勿重复添加!\033[0m"
|
msg_alert "\033[31m$GW_ERR_DUP_PORT\033[0m"
|
||||||
elif [ "$port" -lt 1 ] || [ "$port" -gt 65535 ]; then
|
elif [ "$port" -lt 1 ] || [ "$port" -gt 65535 ]; then
|
||||||
msg_alert "\033[31m输入错误!请输入正确的数值(1-65535)!\033[0m"
|
msg_alert "\033[31m$GW_ERR_PORT_RANGE\033[0m"
|
||||||
else
|
else
|
||||||
fw_wan_ports=$(echo "$fw_wan_ports,$port" | sed "s/^,//")
|
fw_wan_ports=$(echo "$fw_wan_ports,$port" | sed "s/^,//")
|
||||||
if setconfig fw_wan_ports "$fw_wan_ports"; then
|
if setconfig fw_wan_ports "$fw_wan_ports"; then
|
||||||
@@ -142,30 +142,30 @@ set_fw_wan() {
|
|||||||
;;
|
;;
|
||||||
3)
|
3)
|
||||||
while true; do
|
while true; do
|
||||||
comp_box "\033[36m请直接输入要移除的端口号\033[0m" \
|
comp_box "\033[36m$GW_INPUT_REMOVE_PORT\033[0m" \
|
||||||
"或输入 0 返回上级菜单"
|
"$GW_INPUT_0_BACK"
|
||||||
read -r -p "请输入> " port
|
read -r -p "$GW_INPUT_PLAIN> " port
|
||||||
if [ "$port" = 0 ]; then
|
if [ "$port" = 0 ]; then
|
||||||
break
|
break
|
||||||
elif echo ",$fw_wan_ports," | grep -q ",$port,"; then
|
elif echo ",$fw_wan_ports," | grep -q ",$port,"; then
|
||||||
if [ "$port" -lt 1 ] || [ "$port" -gt 65535 ]; then
|
if [ "$port" -lt 1 ] || [ "$port" -gt 65535 ]; then
|
||||||
msg_alert "\033[31m输入错误!\033[0m" \
|
msg_alert "\033[31m$GW_ERR_INPUT\033[0m" \
|
||||||
"\033[31m请输入正确的数值(1-65535)!\033[0m"
|
"\033[31m$GW_ERR_PORT_RANGE\033[0m"
|
||||||
else
|
else
|
||||||
fw_wan_ports=$(echo ",$fw_wan_ports," | sed "s/,$port//; s/^,//; s/,$//")
|
fw_wan_ports=$(echo ",$fw_wan_ports," | sed "s/,$port//; s/^,//; s/,$//")
|
||||||
setconfig fw_wan_ports "$fw_wan_ports"
|
setconfig fw_wan_ports "$fw_wan_ports"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m输入错误!\033[0m" \
|
msg_alert "\033[31m$GW_ERR_INPUT\033[0m" \
|
||||||
"\033[31m请输入已添加过的端口!\033[0m"
|
"\033[31m$GW_ERR_PORT_NOT_FOUND\033[0m"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
4)
|
4)
|
||||||
fw_wan_ports=''
|
fw_wan_ports=''
|
||||||
setconfig fw_wan_ports
|
setconfig fw_wan_ports
|
||||||
msg_alert "\033[32m操作成功\033[0m"
|
msg_alert "\033[32m$GW_OK\033[0m"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
errornum
|
errornum
|
||||||
@@ -183,8 +183,8 @@ set_bot_tg_config() {
|
|||||||
cat <<EOF
|
cat <<EOF
|
||||||
{
|
{
|
||||||
"commands": [
|
"commands": [
|
||||||
{"command": "$my_alias", "description": "呼出ShellCrash菜单"},
|
{"command": "$my_alias", "description": "$GW_TG_CMD_MENU"},
|
||||||
{"command": "help", "description": "查看帮助"}
|
{"command": "help", "description": "$GW_TG_CMD_HELP"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
@@ -224,10 +224,10 @@ set_bot_tg() {
|
|||||||
while true; do
|
while true; do
|
||||||
[ -n "$ts_auth_key" ] && ts_auth_key_info="$GW_SET"
|
[ -n "$ts_auth_key" ] && ts_auth_key_info="$GW_SET"
|
||||||
[ -n "$TG_CHATID" ] && TG_CHATID_info="$GW_BOUND"
|
[ -n "$TG_CHATID" ] && TG_CHATID_info="$GW_BOUND"
|
||||||
comp_box "\033[31m注意:\033[0m由于网络环境原因,此机器人仅限服务启动时运行!"
|
comp_box "\033[31m$GW_WARN\033[0m$GW_TG_WARN"
|
||||||
btm_box "1) 启用/关闭TG-BOT服务 \033[32m$bot_tg_service\033[0m" \
|
btm_box "1) $GW_TG_TOGGLE \033[32m$bot_tg_service\033[0m" \
|
||||||
"2) TG-BOT绑定设置 \033[32m$TG_CHATID_info\033[0m" \
|
"2) $GW_TG_BIND \033[32m$TG_CHATID_info\033[0m" \
|
||||||
"3) 启动时推送菜单 \033[32m$TG_menupush\033[0m" \
|
"3) $GW_TG_MENUPUSH \033[32m$TG_menupush\033[0m" \
|
||||||
"" \
|
"" \
|
||||||
"0) $COMMON_BACK"
|
"0) $COMMON_BACK"
|
||||||
read -r -p "$COMMON_INPUT> " num
|
read -r -p "$COMMON_INPUT> " num
|
||||||
@@ -240,16 +240,16 @@ set_bot_tg() {
|
|||||||
if [ -n "$TG_CHATID" ]; then
|
if [ -n "$TG_CHATID" ]; then
|
||||||
set_bot_tg_service
|
set_bot_tg_service
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m请先绑定TG-BOT!\033[0m"
|
msg_alert "\033[31m$GW_TG_BIND_FIRST\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
if [ -n "$chat_ID" ] && [ -n "$push_TG" ] && [ "$push_TG" != 'publictoken' ]; then
|
if [ -n "$chat_ID" ] && [ -n "$push_TG" ] && [ "$push_TG" != 'publictoken' ]; then
|
||||||
comp_box "检测到已经绑定了TG推送BOT" \
|
comp_box "$GW_TG_BOUND_DETECTED" \
|
||||||
"是否直接使用?"
|
"$GW_TG_USE_DIRECT"
|
||||||
btm_box "1) 是" \
|
btm_box "1) $GW_YES" \
|
||||||
"0) 否"
|
"0) $GW_NO"
|
||||||
read -r -p "请输入对应标号> " res
|
read -r -p "$COMMON_INPUT> " res
|
||||||
if [ "$res" = 1 ]; then
|
if [ "$res" = 1 ]; then
|
||||||
TOKEN="$push_TG"
|
TOKEN="$push_TG"
|
||||||
set_bot_tg_config
|
set_bot_tg_config
|
||||||
@@ -277,18 +277,18 @@ set_bot_tg() {
|
|||||||
# 自定义入站
|
# 自定义入站
|
||||||
set_vmess() {
|
set_vmess() {
|
||||||
while true; do
|
while true; do
|
||||||
comp_box "\033[31m注意:\033[0m" \
|
comp_box "\033[31m$GW_WARN\033[0m" \
|
||||||
"设置的端口会添加到公网访问防火墙并自动放行!" \
|
"$GW_INBOUND_WARN_PORT" \
|
||||||
"脚本只提供基础功能,更多需求请用自定义配置文件功能!" \
|
"$GW_INBOUND_WARN_BASIC" \
|
||||||
"\033[31m切勿用于搭建违法翻墙节点,违者后果自负!\033[0m"
|
"\033[31m$GW_INBOUND_WARN_ILLEGAL\033[0m"
|
||||||
content_line "1) \033[32m启用/关闭\033[0mVmess入站 \033[32m$vms_service\033[0m"
|
content_line "1) \033[32m$GW_VMS_TOGGLE\033[0m \033[32m$vms_service\033[0m"
|
||||||
content_line "2) 设置\033[36m监听端口\033[0m: \033[36m$vms_port\033[0m"
|
content_line "2) $GW_SET_LISTEN_PORT \033[36m$vms_port\033[0m"
|
||||||
content_line "3) 设置\033[33mWS-path(可选)\033[0m: \033[33m$vms_ws_path\033[0m"
|
content_line "3) $GW_SET_WSPATH \033[33m$vms_ws_path\033[0m"
|
||||||
content_line "4) 设置\033[36m秘钥-uuid\033[0m: \033[36m$vms_uuid\033[0m"
|
content_line "4) $GW_SET_UUID \033[36m$vms_uuid\033[0m"
|
||||||
content_line "5) 一键生成\033[32m随机秘钥\033[0m"
|
content_line "5) $GW_GEN_RANDOM_KEY"
|
||||||
gen_base64 1 >/dev/null 2>&1 &&
|
gen_base64 1 >/dev/null 2>&1 &&
|
||||||
content_line "6) 设置\033[36m混淆host(可选)\033[0m: \033[33m$vms_host\033[0m"
|
content_line "6) $GW_SET_OBFS_HOST \033[33m$vms_host\033[0m"
|
||||||
btm_box "7) 一键生成\033[32m分享链接\033[0m" \
|
btm_box "7) $GW_GEN_SHARE_LINK" \
|
||||||
"" \
|
"" \
|
||||||
"0) $COMMON_BACK"
|
"0) $COMMON_BACK"
|
||||||
read -r -p "$COMMON_INPUT> " num
|
read -r -p "$COMMON_INPUT> " num
|
||||||
@@ -305,7 +305,7 @@ set_vmess() {
|
|||||||
vms_service=ON
|
vms_service=ON
|
||||||
setconfig vms_service "$vms_service"
|
setconfig vms_service "$vms_service"
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m请先完成必选设置!\033[0m"
|
msg_alert "\033[31m$GW_FILL_REQUIRED\033[0m"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@@ -332,7 +332,7 @@ set_vmess() {
|
|||||||
vms_ws_path="$text"
|
vms_ws_path="$text"
|
||||||
setconfig vms_ws_path "$text" "$GT_CFG_PATH"
|
setconfig vms_ws_path "$text" "$GT_CFG_PATH"
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m不是合法的path路径,必须以【/】开头!\033[0m"
|
msg_alert "\033[31m$GW_ERR_WSPATH\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
4)
|
4)
|
||||||
@@ -345,7 +345,7 @@ set_vmess() {
|
|||||||
vms_uuid="$text"
|
vms_uuid="$text"
|
||||||
setconfig vms_uuid "$text" "$GT_CFG_PATH"
|
setconfig vms_uuid "$text" "$GT_CFG_PATH"
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m不是合法的UUID格式,请重新输入或使用随机生成功能!\033[0m"
|
msg_alert "\033[31m$GW_ERR_UUID\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
5)
|
5)
|
||||||
@@ -355,7 +355,7 @@ set_vmess() {
|
|||||||
;;
|
;;
|
||||||
6)
|
6)
|
||||||
line_break
|
line_break
|
||||||
read -r -p "请输入免流混淆host(输入0删除)> " text
|
read -r -p "$GW_INPUT_OBFS_HOST> " text
|
||||||
if [ "$text" = 0 ]; then
|
if [ "$text" = 0 ]; then
|
||||||
vms_host=''
|
vms_host=''
|
||||||
setconfig vms_host "" "$GT_CFG_PATH"
|
setconfig vms_host "" "$GT_CFG_PATH"
|
||||||
@@ -366,7 +366,7 @@ set_vmess() {
|
|||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
line_break
|
line_break
|
||||||
read -r -p "请输入本机公网IP(4/6)或域名> " host_wan
|
read -r -p "$GW_INPUT_HOST> " host_wan
|
||||||
if [ -n "$host_wan" ] && [ -n "$vms_port" ] && [ -n "$vms_uuid" ]; then
|
if [ -n "$host_wan" ] && [ -n "$vms_port" ] && [ -n "$vms_uuid" ]; then
|
||||||
[ -n "$vms_ws_path" ] && vms_net=ws
|
[ -n "$vms_ws_path" ] && vms_net=ws
|
||||||
vms_json=$(
|
vms_json=$(
|
||||||
@@ -387,10 +387,10 @@ EOF
|
|||||||
)
|
)
|
||||||
vms_link="vmess://$(gen_base64 "$vms_json")"
|
vms_link="vmess://$(gen_base64 "$vms_json")"
|
||||||
line_break
|
line_break
|
||||||
echo -e "你的分享链接是(请勿随意分享给他人):\n\033[32m$vms_link\033[0m"
|
echo -e "$GW_SHARE_LINK_HINT\n\033[32m$vms_link\033[0m"
|
||||||
sleep 1
|
sleep 1
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m请先完成必选设置!\033[0m"
|
msg_alert "\033[31m$GW_FILL_REQUIRED\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -402,16 +402,16 @@ EOF
|
|||||||
|
|
||||||
set_shadowsocks() {
|
set_shadowsocks() {
|
||||||
while true; do
|
while true; do
|
||||||
comp_box "\033[31m注意:\033[0m" \
|
comp_box "\033[31m$GW_WARN\033[0m" \
|
||||||
"设置的端口会添加到公网访问防火墙并自动放行!" \
|
"$GW_INBOUND_WARN_PORT" \
|
||||||
"脚本只提供基础功能,更多需求请用自定义配置文件功能!" \
|
"$GW_INBOUND_WARN_BASIC" \
|
||||||
"\033[31m切勿用于搭建违法翻墙节点,违者后果自负!\033[0m"
|
"\033[31m$GW_INBOUND_WARN_ILLEGAL\033[0m"
|
||||||
content_line "1) \033[32m启用/关闭\033[0mShadowSocks入站 \033[32m$sss_service\033[0m"
|
content_line "1) \033[32m$GW_SS_TOGGLE\033[0m \033[32m$sss_service\033[0m"
|
||||||
content_line "2) 设置\033[36m监听端口\033[0m: \033[36m$sss_port\033[0m"
|
content_line "2) $GW_SET_LISTEN_PORT \033[36m$sss_port\033[0m"
|
||||||
content_line "3) 选择\033[33m加密协议\033[0m: \033[33m$sss_cipher\033[0m"
|
content_line "3) $GW_SS_SELECT_CIPHER \033[33m$sss_cipher\033[0m"
|
||||||
content_line "4) 设置\033[36mpassword\033[0m: \033[36m$sss_pwd\033[0m"
|
content_line "4) $GW_SS_SET_PWD \033[36m$sss_pwd\033[0m"
|
||||||
gen_base64 1 >/dev/null 2>&1 &&
|
gen_base64 1 >/dev/null 2>&1 &&
|
||||||
content_line "5) 一键生成分享链接"
|
content_line "5) $GW_GEN_SHARE_LINK"
|
||||||
btm_box "" \
|
btm_box "" \
|
||||||
"0) $COMMON_BACK"
|
"0) $COMMON_BACK"
|
||||||
read -r -p "$COMMON_INPUT> " num
|
read -r -p "$COMMON_INPUT> " num
|
||||||
@@ -428,7 +428,7 @@ set_shadowsocks() {
|
|||||||
sss_service=ON
|
sss_service=ON
|
||||||
setconfig sss_service "$sss_service"
|
setconfig sss_service "$sss_service"
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m请先完成必选设置!\033[0m"
|
msg_alert "\033[31m$GW_FILL_REQUIRED\033[0m"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@@ -446,15 +446,15 @@ set_shadowsocks() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
3)
|
3)
|
||||||
comp_box "请选择要使用的加密协议:"
|
comp_box "$GW_SS_SELECT_CIPHER"
|
||||||
content_line "1) \033[32mxchacha20-ietf-poly1305\033[0m"
|
content_line "1) \033[32mxchacha20-ietf-poly1305\033[0m"
|
||||||
content_line "2) \033[32mchacha20-ietf-poly1305\033[0m"
|
content_line "2) \033[32mchacha20-ietf-poly1305\033[0m"
|
||||||
content_line "3) \033[32maes-128-gcm\033[0m"
|
content_line "3) \033[32maes-128-gcm\033[0m"
|
||||||
content_line "4) \033[32maes-256-gcm\033[0m"
|
content_line "4) \033[32maes-256-gcm\033[0m"
|
||||||
gen_random 1 >/dev/null && {
|
gen_random 1 >/dev/null && {
|
||||||
content_line ""
|
content_line ""
|
||||||
content_line " - - - - - - -\033[31m注意\033[0m- - - - - - -"
|
content_line "$GW_SS_2022_NOTE_HEADER"
|
||||||
content_line " 2022系列加密必须使用随机生成的password!"
|
content_line "$GW_SS_2022_REQUIRE"
|
||||||
content_line "5) \033[32m2022-blake3-chacha20-poly1305\033[0m"
|
content_line "5) \033[32m2022-blake3-chacha20-poly1305\033[0m"
|
||||||
content_line "6) \033[32m2022-blake3-aes-128-gcm\033[0m"
|
content_line "6) \033[32m2022-blake3-aes-128-gcm\033[0m"
|
||||||
content_line "7) \033[32m2022-blake3-aes-256-gcm\033[0m"
|
content_line "7) \033[32m2022-blake3-aes-256-gcm\033[0m"
|
||||||
@@ -501,10 +501,10 @@ set_shadowsocks() {
|
|||||||
;;
|
;;
|
||||||
4)
|
4)
|
||||||
if echo "$sss_cipher" | grep -q '2022-blake3'; then
|
if echo "$sss_cipher" | grep -q '2022-blake3'; then
|
||||||
msg_alert "\033[31m注意:\033[0m2022系列加密必须使用脚本随机生成的password!"
|
msg_alert "\033[31m$GW_WARN\033[0m$GW_SS_2022_PASSWORD_ONLY"
|
||||||
else
|
else
|
||||||
line_break
|
line_break
|
||||||
read -r -p "请输入秘钥(输入0删除)> " text
|
read -r -p "$GW_INPUT_PWD_DEL0> " 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
|
||||||
@@ -515,10 +515,10 @@ set_shadowsocks() {
|
|||||||
if [ -n "$text" ] && [ -n "$sss_port" ] && [ -n "$sss_cipher" ] && [ -n "$sss_pwd" ]; then
|
if [ -n "$text" ] && [ -n "$sss_port" ] && [ -n "$sss_cipher" ] && [ -n "$sss_pwd" ]; then
|
||||||
ss_link="ss://$(gen_base64 "$sss_cipher":"$sss_pwd")@${text}:${sss_port}#ShellCrash_ss_in"
|
ss_link="ss://$(gen_base64 "$sss_cipher":"$sss_pwd")@${text}:${sss_port}#ShellCrash_ss_in"
|
||||||
line_break
|
line_break
|
||||||
echo -e "你的分享链接是(请勿随意分享给他人):\n\033[32m$ss_link\033[0m"
|
echo -e "$GW_SHARE_LINK_HINT\n\033[32m$ss_link\033[0m"
|
||||||
sleep 1
|
sleep 1
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m请先完成必选设置!\033[0m"
|
msg_alert "\033[31m$GW_FILL_REQUIRED\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -532,15 +532,15 @@ set_shadowsocks() {
|
|||||||
set_tailscale() {
|
set_tailscale() {
|
||||||
while true; do
|
while true; do
|
||||||
[ -n "$ts_auth_key" ] && ts_auth_key_info='*********'
|
[ -n "$ts_auth_key" ] && ts_auth_key_info='*********'
|
||||||
comp_box "\033[31m注意:\033[0m脚本默认内核为了节约内存没有编译Tailscale模块\n如需使用请先前往自定义内核更新完整版内核文件!" \
|
comp_box "\033[31m$GW_WARN\033[0m$GW_TS_WARN" \
|
||||||
"创建秘钥:\033[32;4mhttps://login.tailscale.com/admin/settings/keys\033[0m" \
|
"$GW_TS_KEY_URL" \
|
||||||
"访问非本机目标需允许通告:\033[32;4mhttps://login.tailscale.com\033[0m" \
|
"$GW_TS_ALLOW_URL" \
|
||||||
"访问非本机目标需在终端设置使用Subnet或EXIT-NODE模式"
|
"$GW_TS_SUBNET_EXIT_HINT"
|
||||||
btm_box "1) \033[32m启用/关闭\033[0mTailscale服务 \033[32m$ts_service\033[0m" \
|
btm_box "1) \033[32m$GW_TS_TOGGLE\033[0m \033[32m$ts_service\033[0m" \
|
||||||
"2) 设置\033[36m秘钥\033[0m(Auth Key) $ts_auth_key_info" \
|
"2) $GW_TS_SET_AUTHKEY $ts_auth_key_info" \
|
||||||
"3) 通告路由\033[33m内网地址\033[0m(Subnet) \033[36m$ts_subnet\033[0m" \
|
"3) $GW_TS_SUBNET \033[36m$ts_subnet\033[0m" \
|
||||||
"4) 通告路由\033[31m全部流量\033[0m(EXIT-NODE) \033[36m$ts_exit_node\033[0m" \
|
"4) $GW_TS_EXIT_NODE \033[36m$ts_exit_node\033[0m" \
|
||||||
"5) 设置\033[36m设备名称\033[0m(可选) $ts_hostname" \
|
"5) $GW_TS_HOSTNAME $ts_hostname" \
|
||||||
"" \
|
"" \
|
||||||
"0) $COMMON_BACK"
|
"0) $COMMON_BACK"
|
||||||
read -r -p "$COMMON_INPUT> " num
|
read -r -p "$COMMON_INPUT> " num
|
||||||
@@ -553,12 +553,12 @@ set_tailscale() {
|
|||||||
[ "$ts_service" = ON ] && ts_service=OFF || ts_service=ON
|
[ "$ts_service" = ON ] && ts_service=OFF || ts_service=ON
|
||||||
setconfig ts_service "$ts_service"
|
setconfig ts_service "$ts_service"
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m请先设置秘钥!\033[0m"
|
msg_alert "\033[31m$GW_TS_SET_KEY_FIRST\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
line_break
|
line_break
|
||||||
read -r -p "请输入秘钥(输入0删除)> " text
|
read -r -p "$GW_TS_INPUT_KEY> " text
|
||||||
[ "$text" = 0 ] && unset ts_auth_key ts_auth_key_info || ts_auth_key="$text"
|
[ "$text" = 0 ] && unset ts_auth_key ts_auth_key_info || ts_auth_key="$text"
|
||||||
setconfig ts_auth_key "$ts_auth_key" "$GT_CFG_PATH"
|
setconfig ts_auth_key "$ts_auth_key" "$GT_CFG_PATH"
|
||||||
;;
|
;;
|
||||||
@@ -571,14 +571,14 @@ set_tailscale() {
|
|||||||
ts_exit_node=false
|
ts_exit_node=false
|
||||||
else
|
else
|
||||||
ts_exit_node=true
|
ts_exit_node=true
|
||||||
msg_alert -t 3 "\033[31m注意:\033[0m目前exitnode的官方DNS有bug,要么启用域名嗅探并禁用TailscaleDNS,\n要么必须在网页设置Globalname servers为分配的本设备子网IP且启用override"
|
msg_alert -t 3 "\033[31m$GW_WARN\033[0m$GW_TS_EXITNODE_WARN"
|
||||||
fi
|
fi
|
||||||
setconfig ts_exit_node "$ts_exit_node" "$GT_CFG_PATH"
|
setconfig ts_exit_node "$ts_exit_node" "$GT_CFG_PATH"
|
||||||
;;
|
;;
|
||||||
5)
|
5)
|
||||||
comp_box "\033[36m请直接输入希望在Tailscale显示的设备名称\033[0m" \
|
comp_box "\033[36m$GW_TS_INPUT_NAME\033[0m" \
|
||||||
"或输入 0 返回上级菜单"
|
"$GW_INPUT_0_BACK"
|
||||||
read -r -p "请输入> " ts_hostname
|
read -r -p "$GW_INPUT_PLAIN> " ts_hostname
|
||||||
if [ "$ts_hostname" != 0 ]; then
|
if [ "$ts_hostname" != 0 ]; then
|
||||||
setconfig ts_hostname "$ts_hostname" "$GT_CFG_PATH"
|
setconfig ts_hostname "$ts_hostname" "$GT_CFG_PATH"
|
||||||
fi
|
fi
|
||||||
@@ -610,17 +610,17 @@ set_wireguard() {
|
|||||||
else
|
else
|
||||||
unset wgpsk_key_info
|
unset wgpsk_key_info
|
||||||
fi
|
fi
|
||||||
comp_box "\033[31m注意:\033[0m脚本默认内核为了节约内存没有编译WireGuard模块\n如需使用请先前往自定义内核更新完整版内核文件!"
|
comp_box "\033[31m$GW_WARN\033[0m$GW_WG_WARN"
|
||||||
btm_box "1) \033[32m启用/关闭\033[0mWireguard服务 \033[32m$wg_service\033[0m" \
|
btm_box "1) \033[32m$GW_WG_TOGGLE\033[0m \033[32m$wg_service\033[0m" \
|
||||||
"" \
|
"" \
|
||||||
"2) 设置\033[36mEndpoint地址\033[0m: \033[36m$wg_server\033[0m" \
|
"2) $GW_WG_SET_ENDPOINT \033[36m$wg_server\033[0m" \
|
||||||
"3) 设置\033[36mEndpoint端口\033[0m: \033[36m$wg_port\033[0m" \
|
"3) $GW_WG_SET_ENDPOINT_PORT \033[36m$wg_port\033[0m" \
|
||||||
"4) 设置\033[36m公钥-PublicKey\033[0m: \033[36m$wgp_key_info\033[0m" \
|
"4) $GW_WG_SET_PUBLIC \033[36m$wgp_key_info\033[0m" \
|
||||||
"5) 设置\033[36m密钥-PresharedKey\033[0m: \033[36m$wgpsk_key_info\033[0m" \
|
"5) $GW_WG_SET_PRESHARED \033[36m$wgpsk_key_info\033[0m" \
|
||||||
"" \
|
"" \
|
||||||
"6) 设置\033[33m私钥-PrivateKey\033[0m: \033[33m$wgv_key_info\033[0m" \
|
"6) $GW_WG_SET_PRIVATE \033[33m$wgv_key_info\033[0m" \
|
||||||
"7) 设置\033[33m组网IPV4地址\033[0m: \033[33m$wg_ipv4\033[0m" \
|
"7) $GW_WG_SET_IPV4 \033[33m$wg_ipv4\033[0m" \
|
||||||
"8) 可选\033[33m组网IPV6地址\033[0m: \033[33m$wg_ipv6\033[0m" \
|
"8) $GW_WG_SET_IPV6 \033[33m$wg_ipv6\033[0m" \
|
||||||
"" \
|
"" \
|
||||||
"0) $COMMON_BACK"
|
"0) $COMMON_BACK"
|
||||||
read -r -p "$COMMON_INPUT> " num
|
read -r -p "$COMMON_INPUT> " num
|
||||||
@@ -633,12 +633,12 @@ set_wireguard() {
|
|||||||
[ "$wg_service" = ON ] && wg_service=OFF || wg_service=ON
|
[ "$wg_service" = ON ] && wg_service=OFF || wg_service=ON
|
||||||
setconfig wg_service "$wg_service"
|
setconfig wg_service "$wg_service"
|
||||||
else
|
else
|
||||||
msg_alert "\033[31m请先完成必选设置!\033[0m"
|
msg_alert "\033[31m$GW_FILL_REQUIRED\033[0m"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
[1-8])
|
[1-8])
|
||||||
line_break
|
line_break
|
||||||
read -r -p "请输入相应内容(回车或0删除)> " text
|
read -r -p "$GW_INPUT_TEXT_DEL0> " text
|
||||||
[ "$text" = 0 ] && text=''
|
[ "$text" = 0 ] && text=''
|
||||||
case "$num" in
|
case "$num" in
|
||||||
2)
|
2)
|
||||||
@@ -677,3 +677,4 @@ set_wireguard() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user