소스 검색

force redirect localhost DNS requests to 127.0.0.1

zfl9 8 년 전
부모
커밋
942877c0d3
1개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  1. 6 0
      ss-tproxy

+ 6 - 0
ss-tproxy

@@ -662,6 +662,7 @@ tproxy_global*|tproxy_chnroute*)
     fi
 
     iptables -t nat -A OUTPUT -p tcp -j SS-TCP
+    iptables -t nat -A OUTPUT -p udp --dport 53 ! -d 127.0.0.1 -j REDIRECT --to-ports 53
     for intranet in "${iptables_intranet[@]}"; do
         if [[ "$mode" == *tcp ]]; then
             iptables -t nat -A PREROUTING -p tcp -s $intranet -j SS-TCP
@@ -701,6 +702,7 @@ tproxy_gfwlist*)
     fi
 
     iptables -t nat -A OUTPUT -p tcp -j SS-TCP
+    iptables -t nat -A OUTPUT -p udp --dport 53 ! -d 127.0.0.1 -j REDIRECT --to-ports 53
     for intranet in "${iptables_intranet[@]}"; do
         if [[ "$mode" == *tcp ]]; then
             iptables -t nat -A PREROUTING -p tcp -s $intranet -j SS-TCP
@@ -719,6 +721,7 @@ tun2socks_global*|tun2socks_chnroute*)
     iptables -t mangle -F PREROUTING
     iptables -t mangle -F TUN2SOCKS &>/dev/null
     iptables -t mangle -X TUN2SOCKS &>/dev/null
+    iptables -t nat -F OUTPUT
     iptables -t nat -F PREROUTING
     iptables -t nat -F POSTROUTING
 
@@ -747,6 +750,7 @@ tun2socks_global*|tun2socks_chnroute*)
 
     iptables -t mangle -A OUTPUT -p tcp -j TUN2SOCKS
     [[ "$mode" != *tcp ]] && iptables -t mangle -A OUTPUT -p udp -j TUN2SOCKS
+    iptables -t nat -A OUTPUT -p udp --dport 53 ! -d 127.0.0.1 -j REDIRECT --to-ports 53
 
     for intranet in "${iptables_intranet[@]}"; do
         if [[ "$mode" == *tcp ]]; then
@@ -766,6 +770,7 @@ tun2socks_gfwlist*)
     iptables -t mangle -F PREROUTING
     iptables -t mangle -F TUN2SOCKS &>/dev/null
     iptables -t mangle -X TUN2SOCKS &>/dev/null
+    iptables -t nat -F OUTPUT
     iptables -t nat -F PREROUTING
     iptables -t nat -F POSTROUTING
 
@@ -780,6 +785,7 @@ tun2socks_gfwlist*)
 
     iptables -t mangle -A OUTPUT -p tcp -j TUN2SOCKS
     [[ "$mode" != *tcp ]] && iptables -t mangle -A OUTPUT -p udp -j TUN2SOCKS
+    iptables -t nat -A OUTPUT -p udp --dport 53 ! -d 127.0.0.1 -j REDIRECT --to-ports 53
 
     for intranet in "${iptables_intranet[@]}"; do
         if [[ "$mode" == *tcp ]]; then