diff --git a/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua index 8fab133a5..eb0753551 100644 --- a/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua +++ b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua @@ -25,7 +25,7 @@ end function src_dst_option(s, ...) local o = s:taboption(...) --o.datatype = "or(ip4addr,cidr4)" - o.datatype = "ip4addr" + o.datatype = "or(ip4addr,ip6addr)" end s = m:section(NamedSection, "ss_rules", "ss_rules") diff --git a/openmptcprouter/files/etc/uci-defaults/1920-omr-network b/openmptcprouter/files/etc/uci-defaults/1920-omr-network index c25082b75..6f0d93850 100755 --- a/openmptcprouter/files/etc/uci-defaults/1920-omr-network +++ b/openmptcprouter/files/etc/uci-defaults/1920-omr-network @@ -29,6 +29,8 @@ _setup_macvlan() { uci -q set "network.$1.type=macvlan" # legacy } +#uci -q set "network.lan.ip6assign=64" + if [ "$(uci -q show network | grep wan)" = "" ]; then uci -q batch <<-EOF set network.wan1=interface @@ -51,6 +53,10 @@ if [ "$(uci -q show network | grep wan)" = "" ]; then commit network add_list firewall.@zone[1].network=wan2 commit firewall + add network route6 + set network.@route6[-1].interface='eth0' + set network.@route6[-1].target='2000::/3' + commit network EOF _setup_macvlan wan1 _setup_macvlan wan2 diff --git a/shadowsocks-libev/files/ss-rules b/shadowsocks-libev/files/ss-rules index b0a30606e..7eb171a9f 100755 --- a/shadowsocks-libev/files/ss-rules +++ b/shadowsocks-libev/files/ss-rules @@ -139,8 +139,8 @@ ss_rules_ipset_init() { $(ss_rules_ipset_mkadd ss_rules_src_bypass "$o_src_bypass") $(ss_rules_ipset_mkadd ss_rules_src_forward "$o_src_forward") $(ss_rules_ipset_mkadd ss_rules_src_checkdst "$o_src_checkdst") - $(ss_rules_ipset_mkadd ss_rules_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null)") - $(ss_rules_ipset_mkadd ss_rules_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null)") + $(ss_rules_ipset_mkadd ss_rules_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')") + $(ss_rules_ipset_mkadd ss_rules_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')") EOF } diff --git a/shadowsocks-libev/files/ss-rules6 b/shadowsocks-libev/files/ss-rules6 index c6a7f61b2..a99471121 100755 --- a/shadowsocks-libev/files/ss-rules6 +++ b/shadowsocks-libev/files/ss-rules6 @@ -1,6 +1,7 @@ #!/bin/sh -e # # Copyright (C) 2017 Yousong Zhou +# Copyright (C) 2018 Ycarus (Yannick Chabanois) # # The design idea was derived from ss-rules by Jian Chang # @@ -51,6 +52,7 @@ EOF } o_dst_bypass_=" + FE80::/10 " o_src_default=bypass o_dst_default=bypass @@ -120,8 +122,8 @@ ss_rules6_ipset_init() { $(ss_rules6_ipset_mkadd ss_rules6_src_bypass "$o_src_bypass") $(ss_rules6_ipset_mkadd ss_rules6_src_forward "$o_src_forward") $(ss_rules6_ipset_mkadd ss_rules6_src_checkdst "$o_src_checkdst") - $(ss_rules6_ipset_mkadd ss_rules6_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null)") - $(ss_rules6_ipset_mkadd ss_rules6_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null)") + $(ss_rules6_ipset_mkadd ss_rules6_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')") + $(ss_rules6_ipset_mkadd ss_rules6_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')") EOF } @@ -212,12 +214,12 @@ ss_rules6_iptchains_init_() { :ss_rules6_dst - :ss_rules6_forward - $(ss_rules6_iptchains_mkprerules "$proto") + -A ss_rules6_pre_src -m set --match-set ss_rules6_dst_bypass_ dst -j RETURN -A ss_rules6_pre_src -p $proto $o_ipt_extra -j ss_rules6_src -A ss_rules6_src -m set --match-set ss_rules6_src_bypass src -j RETURN -A ss_rules6_src -m set --match-set ss_rules6_src_forward src -j ss_rules6_forward -A ss_rules6_src -m set --match-set ss_rules6_src_checkdst src -j ss_rules6_dst -A ss_rules6_src -j $src_default_target -m comment --comment "src_default: $o_src_default" - -A ss_rules6_pre_src -m set --match-set ss_rules6_dst_bypass_ dst -j RETURN -A ss_rules6_dst -m set --match-set ss_rules6_dst_bypass dst -j RETURN -A ss_rules6_dst -m set --match-set ss_rules6_dst_forward dst -j ss_rules6_forward $recentrst_addset_rules