Browse Source

force redirect localhost DNS requests to 127.0.0.1

zfl9 8 years ago
parent
commit
942877c0d3
1 changed files with 6 additions and 0 deletions
  1. 6 0
      ss-tproxy

+ 6 - 0
ss-tproxy

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