From e6f4b063e79c80532ca8d5c42ebd264d625586e4 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sat, 15 Aug 2020 09:02:08 +0200 Subject: [PATCH] Fix IPv6 aggregation --- shadowsocks-libev/files/shadowsocks-libev.init | 4 +++- shadowsocks-libev/files/ss-rules6 | 7 +++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/shadowsocks-libev/files/shadowsocks-libev.init b/shadowsocks-libev/files/shadowsocks-libev.init index e441fe3e4..c9d10b176 100644 --- a/shadowsocks-libev/files/shadowsocks-libev.init +++ b/shadowsocks-libev/files/shadowsocks-libev.init @@ -167,7 +167,7 @@ ss_rules() { local args local rule_name if [ "$cfg" = "ss_rules" ]; then - rule_name="default" + rule_name="def" else rule_name="$(echo $cfg | sed 's/_rule//' | cut -c -7)" fi @@ -256,6 +256,7 @@ ss_rules_call6() { ${local_port_udp:+-L "$local_port_udp6"} \ ${src_default:+--src-default "$src_default"} \ ${dst_default:+--dst-default "$dst_default"} \ + ${local_default:+--local-default "$local_default"} \ ${dst_ips_bypass_file:+--dst-bypass-file "$dst_ips_bypass_file"} \ ${dst_ips_forward_file:+--dst-forward-file "$dst_ips_forward_file"} \ ${dst_ips_bypass6:+--dst-bypass "$dst_ips_bypass6"} \ @@ -265,6 +266,7 @@ ss_rules_call6() { ${src_ips_checkdst6:+--src-checkdst "$src_ips_checkdst6"} \ ${ifnames:+--ifnames "$ifnames"} \ ${ipt_args:+--ipt-extra "$ipt_args"} \ + ${cfg:+--rule-name "$rule_name"} \ $args \ || "$bin6" "$@" -f } diff --git a/shadowsocks-libev/files/ss-rules6 b/shadowsocks-libev/files/ss-rules6 index 2557eff4a..6ac5ce3c9 100755 --- a/shadowsocks-libev/files/ss-rules6 +++ b/shadowsocks-libev/files/ss-rules6 @@ -81,6 +81,7 @@ ss_rules6_parse_args() { --src-forward) o_src_forward="$2"; shift 2;; --src-checkdst) o_src_checkdst="$2"; shift 2;; --dst-bypass) o_dst_bypass="$2"; shift 2;; + --dst-bypass_all) o_dst_bypass_all="$2"; shift 2;; --dst-forward) o_dst_forward="$2"; shift 2;; --dst-forward-recentrst) o_dst_forward_recentrst=1; shift 1;; --dst-bypass-file) o_dst_bypass_file="$2"; shift 2;; @@ -180,7 +181,6 @@ ss_rules6_iptchains_init_tcp() { -A ss_rules6_${rule}_local_out -p tcp $o_ipt_extra -j $local_target -m comment --comment "local_default: $o_local_default" COMMIT EOF - } ss_rules6_iptchains_init_udp() { @@ -205,8 +205,8 @@ ss_rules6_iptchains_init_() { COMMIT " recentrst_addset_rules=" - -A ss_rules6_dst -m recent --name ss_rules6_recentrst --rcheck --rdest --seconds 3 --hitcount 3 -j SET --add-set ss_rules6_dst_forward_recrst_ dst --exist - -A ss_rules6_dst -m set --match-set ss_rules6_dst_forward_recrst_ dst -j ss_rules6_${rule}_forward + -A ss_rules6_${rule}_dst -m recent --name ss_rules6_recentrst --rcheck --rdest --seconds 3 --hitcount 3 -j SET --add-set ss_rules6_dst_forward_recrst_ dst --exist + -A ss_rules6_${rule}_dst -m set --match-set ss_rules6_dst_forward_recrst_ dst -j ss_rules6_${rule}_forward " fi ;; @@ -251,7 +251,6 @@ ss_rules6_iptchains_init_() { COMMIT $recentrst_mangle_rules EOF - } ss_rules6_iptchains_mkprerules() {