- 论坛徽章:
- 0
|
请高手指点:squid+iptable透明代理DNS解析不了
你防火墙脚本有错,相信你的代理服务器本身都不能正常解析域名吧!
iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.0.254 -p tcp --dport 80 -j REDIRECT --to-port 192.168.0.254:3128
上面这句的结果是:
iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.0.254 -p tcp --dport 80 -j REDIRECT --to-port 192
因REDIRECT后只能带端口,不能有IP的,所以要改成
iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.0.254 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -A INPUT -i eth1 -p icmp -j DROP #这句在前面,你代理本身都没法正常解析域名的,因域名解析要用到icmp协议的其中一个类型。
iptables -A INPUT -i eth1 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m state --state NEW -j DROP
我帮你改了一下脚本,如下:
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
echo "1" >; /proc/sys/net/ipv4/ip_forward
route add -net 172.31.60.0 netmask 255.255.255.0 gw 192.168.0.1
route add -net 172.31.61.0 netmask 255.255.255.0 gw 192.168.0.1
route add -net 172.31.62.0 netmask 255.255.255.0 gw 192.168.0.1
iptables -F
iptables -t nat -F
iptables -t nat -A PREROUTING -i eth0 -s ! 192.168.0.254 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j SNAT --to 210.14.x.x
iptables -t nat -A POSTROUTING -o eth1 -s 172.31.60.0/24 -j SNAT --to 210.14.x.x
iptables -t nat -A POSTROUTING -o eth1 -s 172.31.61.0/24 -j SNAT --to 210.14.x.x
iptables -t nat -A POSTROUTING -o eth1 -s 172.31.62.0/24 -j SNAT --to 210.14.x.x
/sbin/iptables -A INPUT -i eth1 -m state --state NEW -j DROP
/sbin/iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
/var/squid/sbin/squid #这放在后面是让防火墙脚本起用后再加载,如防火墙有影响到SQUID的规则,那SQUID会报错的。 |
|