diff --git a/scripts/start.sh b/scripts/start.sh index 8faeec2..f945e59 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1028,6 +1028,7 @@ start_iptables() { #iptables配置总入口 logger "当前设备内核缺少ip6tables_REDIRECT模块支持,已放弃启动相关规则!" 31 fi } + } } [ "$redir_mod" = "Tproxy模式" ] && { JUMP="TPROXY --on-port $tproxy_port --tproxy-mark $fwmark" #跳转劫持的具体命令 @@ -1050,7 +1051,7 @@ start_iptables() { #iptables配置总入口 if ip6tables -j TPROXY -h 2>/dev/null | grep -q '\--on-port'; then JUMP="TPROXY --on-port $tproxy_port --tproxy-mark $fwmark" #跳转劫持的具体命令 [ "$lan_proxy" = true ] && start_ipt_route ip6tables mangle PREROUTING shellcrashv6_mark all - [ "$local_proxy" = true ] && { + [ "$local_proxy" = true ] && { if [ -n "$(grep -E '^MARK$' /proc/net/ip6_tables_targets)" ]; then JUMP="MARK --set-mark $fwmark" #跳转劫持的具体命令 start_ipt_route ip6tables mangle OUTPUT shellcrashv6_mark_out all @@ -1081,10 +1082,10 @@ start_iptables() { #iptables配置总入口 fi [ "$ipv6_redir" = "已开启" ] && [ "$crashcore" != clashpre ] && { if ip6tables -j MARK -h 2>/dev/null | grep -q '\--set-mark'; then - [ "$lan_proxy" = true ] && { + [ "$lan_proxy" = true ] && { [ "$redir_mod" = "Tun模式" -o "$redir_mod" = "混合模式" ] && ip6tables -I FORWARD -o utun -j ACCEPT start_ipt_route ip6tables mangle PREROUTING shellcrashv6_mark $protocol - } + } [ "$local_proxy" = true ] && start_ipt_route ip6tables mangle OUTPUT shellcrashv6_mark_out $protocol else logger "当前设备内核可能缺少xt_mark模块支持,已放弃启动相关规则!" 31 @@ -1156,7 +1157,7 @@ start_nft_route() { #nftables-route通用工具 CN_IP6=$(awk '{printf "%s, ",$1}' "$BINDIR"/cn_ipv6.txt) [ -n "$CN_IP6" ] && nft add rule inet shellcrash $1 ip6 daddr {$CN_IP6} return } - elif [ "$ipv6_redir" = "已开启" -a "$1" = 'output' -a \( "$firewall_area" = 2 -o "$firewall_area" = 3 \) ]; then + elif [ "$ipv6_redir" = "已开启" -a "$1" = 'output' -a \( "$firewall_area" = 2 -o "$firewall_area" = 3 \) ]; then RESERVED_IP6="$(echo "$reserve_ipv6 $host_ipv6" | sed 's/ /, /g')" HOST_IP6="$(::1, echo $local_ipv6 | sed 's/ /, /g')" #过滤保留地址及本机地址 @@ -1390,7 +1391,7 @@ stop_firewall() { #还原防火墙配置 ip6tables -t nat -F $table 2>/dev/null ip6tables -t nat -X $table 2>/dev/null done - for table in shellcrashv6_mark shellcrashv6_mark_out; do + for table in shellcrashv6_mark shellcrashv6_mark_out; do ip6tables -t mangle -F $table 2>/dev/null ip6tables -t mangle -X $table 2>/dev/null done