iptables DNS劫持

经过一年左右的测试,利用BIND9分流,还有 GFW 名单,做了一个干净DNS,测试还很好,搭在家用服务器上(同时提供VPN服务)。

终端电脑每次切换IP网关时候,都要调整DNS,要么119.29.29.29,要么172.16.0.230(自建干净DNS),有一点麻烦。

那么,在172.16.0.230上做劫持,只要经过172.16.0.230的DNS请求,直接劫持到 172.16.0.230本地,如果,就实现了干净DNS切换的目的。

iptables -t nat -A PREROUTING -i ethX -p udp –dport 53 -j DNAT –to $(get lan_ipaddr)
iptables -t nat -A PREROUTING -i ethX -p tcp –dport 53 -j DNAT –to $(get lan_ipaddr)

#获取动态IP
iptables -t nat -A PREROUTING -p udp –dport 53 -j DNAT –to $(ip add show eth0 | grep “scope global” |grep “brd” | awk ‘{ print $2}’|cut -d “/” -f1)

#静态IP
iptables -t nat -A PREROUTING -p tcp –dport 53 -j DNAT –to 172.16.0.230

其实看看能不能在主路由172.16.0.1 dhcp上下发两个网关?172.16.0.230第一,172.16.0.1第二个?这样连切换都省了?