Răsfoiți Sursa

修复非标内网网段导致的 DNS 无法解析问题

zfl9 8 ani în urmă
părinte
comite
9806e55e3e
2 a modificat fișierele cu 15 adăugiri și 0 ștergeri
  1. 9 0
      ss-tproxy
  2. 6 0
      ss-tproxy.conf

+ 9 - 0
ss-tproxy

@@ -565,6 +565,9 @@ tproxy_global*|tproxy_chnroute*)
     iptables -t nat -A SS-TCP -d 169.254/16 -j RETURN
     iptables -t nat -A SS-TCP -d 172.16/12 -j RETURN
     iptables -t nat -A SS-TCP -d 192.168/16 -j RETURN
+    for cidr in "${iptables_intranet_nonstd[@]}"; do
+        iptables -t nat -A SS-TCP -d $cidr -j RETURN
+    done
     iptables -t nat -A SS-TCP -d 224/4 -j RETURN
     iptables -t nat -A SS-TCP -d 240/4 -j RETURN
     iptables -t nat -A SS-TCP -d $server_addr -j RETURN
@@ -587,6 +590,9 @@ tproxy_global*|tproxy_chnroute*)
         iptables -t mangle -A SS-UDP -d 169.254/16 -j RETURN
         iptables -t mangle -A SS-UDP -d 172.16/12 -j RETURN
         iptables -t mangle -A SS-UDP -d 192.168/16 -j RETURN
+        for cidr in "${iptables_intranet_nonstd[@]}"; do
+            iptables -t mangle -A SS-UDP -d $cidr -j RETURN
+        done
         iptables -t mangle -A SS-UDP -d 224/4 -j RETURN
         iptables -t mangle -A SS-UDP -d 240/4 -j RETURN
         iptables -t mangle -A SS-UDP -d $server_addr -j RETURN
@@ -665,6 +671,9 @@ tun2socks_global*|tun2socks_chnroute*)
     iptables -t mangle -A TUN2SOCKS -d 169.254/16 -j RETURN
     iptables -t mangle -A TUN2SOCKS -d 172.16/12 -j RETURN
     iptables -t mangle -A TUN2SOCKS -d 192.168/16 -j RETURN
+    for cidr in "${iptables_intranet_nonstd[@]}"; do
+        iptables -t mangle -A TUN2SOCKS -d $cidr -j RETURN
+    done
     iptables -t mangle -A TUN2SOCKS -d 224/4 -j RETURN
     iptables -t mangle -A TUN2SOCKS -d 240/4 -j RETURN
     iptables -t mangle -A TUN2SOCKS -d $socks5_remote -j RETURN

+ 6 - 0
ss-tproxy.conf

@@ -135,3 +135,9 @@ iptables_pbr_number='100'                        # PBR 路由表号
 iptables_pbr_fwmark='0x2333/0x2333'              # PBR fwmark值
 iptables_ipset_file='/etc/tproxy/chnroute.ipset' # 大陆地址段 ipset 文件
 iptables_intranet=(192.168.0.0/16)               # 内网网段,多个空格隔开
+# 如果 iptables_intranet 中含有非"标准"网段,"标准"网段为:
+# 10.0.0.0/8、169.254.0.0/16、172.16.0.0/12、192.168.0.0/16
+# 请将它们填入 iptables_intranet_nonstd 列表中,多个空格隔开
+# 注意,类似 192.168.1.0/24 网段是包含在 192.168.0.0/16 中的
+# 10/8、169.254/16、172.16/12 也是一样的道理,请不要加入列表
+iptables_intranet_nonstd=()