Support Redirect TCP
This commit is contained in:
@@ -46,9 +46,14 @@ stop_forward_dnsmasq()
|
|||||||
set_iptable()
|
set_iptable()
|
||||||
{
|
{
|
||||||
local ipv6_server=$1
|
local ipv6_server=$1
|
||||||
|
local tcp_server=$2
|
||||||
|
|
||||||
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F : '{print $2}'`"
|
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F : '{print $2}'`"
|
||||||
for IP in $IPS
|
for IP in $IPS
|
||||||
do
|
do
|
||||||
|
if [ "$tcp_server" == "1" ]; then
|
||||||
|
iptables -t nat -A PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT >/dev/null 2>&1
|
||||||
|
fi
|
||||||
iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT >/dev/null 2>&1
|
iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT >/dev/null 2>&1
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -59,6 +64,9 @@ set_iptable()
|
|||||||
IPS="`ifconfig | grep "inet6 addr" | grep -v " fe80::" | grep -v " ::1" | grep "Global" | awk '{print $3}'`"
|
IPS="`ifconfig | grep "inet6 addr" | grep -v " fe80::" | grep -v " ::1" | grep "Global" | awk '{print $3}'`"
|
||||||
for IP in $IPS
|
for IP in $IPS
|
||||||
do
|
do
|
||||||
|
if [ "$tcp_server" == "1" ]; then
|
||||||
|
ip6tables -t nat -A PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT >/dev/null 2>&1
|
||||||
|
fi
|
||||||
ip6tables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT >/dev/null 2>&1
|
ip6tables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT >/dev/null 2>&1
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -72,6 +80,7 @@ clear_iptable()
|
|||||||
for IP in $IPS
|
for IP in $IPS
|
||||||
do
|
do
|
||||||
iptables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1
|
iptables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1
|
||||||
|
iptables -t nat -D PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "$ipv6_server" == 0 ]; then
|
if [ "$ipv6_server" == 0 ]; then
|
||||||
@@ -82,6 +91,7 @@ clear_iptable()
|
|||||||
for IP in $IPS
|
for IP in $IPS
|
||||||
do
|
do
|
||||||
ip6tables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1
|
ip6tables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1
|
||||||
|
ip6tables -t nat -D PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $OLD_PORT >/dev/null 2>&1
|
||||||
done
|
done
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -203,7 +213,7 @@ start_service() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$redirect" = "redirect" ]; then
|
if [ "$redirect" = "redirect" ]; then
|
||||||
set_iptable $ipv6_server
|
set_iptable $ipv6_server $tcp_server
|
||||||
elif [ "$redirect" = "dnsmasq-upstream" ]; then
|
elif [ "$redirect" = "dnsmasq-upstream" ]; then
|
||||||
set_forward_dnsmasq "$SMARTDNS_PORT"
|
set_forward_dnsmasq "$SMARTDNS_PORT"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -7,10 +7,22 @@ SMARTDNS_PORT=535
|
|||||||
|
|
||||||
set_iptable()
|
set_iptable()
|
||||||
{
|
{
|
||||||
|
local redirect_tcp
|
||||||
|
|
||||||
|
redirect_tcp=0;
|
||||||
|
|
||||||
|
grep ^bind-tcp $SMARTDNS_CONF > /dev/null 2>&1
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
redirect_tcp=1;
|
||||||
|
fi
|
||||||
|
|
||||||
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F: '{print $2}'`"
|
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F: '{print $2}'`"
|
||||||
for IP in $IPS
|
for IP in $IPS
|
||||||
do
|
do
|
||||||
iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT
|
if [ $redirect_tcp -eq 1 ]; then
|
||||||
|
iptables -t nat -A PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT > /dev/null 2>&1
|
||||||
done
|
done
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -20,7 +32,8 @@ clear_iptable()
|
|||||||
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F: '{print $2}'`"
|
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F: '{print $2}'`"
|
||||||
for IP in $IPS
|
for IP in $IPS
|
||||||
do
|
do
|
||||||
iptables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT
|
iptables -t nat -D PREROUTING -p tcp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT > /dev/null 2>&1
|
||||||
|
iptables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT > /dev/null 2>&1
|
||||||
done
|
done
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user