免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zxdzhj
打印 上一主题 下一主题

[proxy] 请高手指点:squid+iptable透明代理DNS解析不了 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2004-06-04 14:38 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

还附上squid服务器rc.local文件的完整内容供参考,一句也没少。内网eth0:192.168.0.254,外网eth1:210.14.x.x。

touch /var/lock/subsys/local

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

/var/squid/sbin/squid

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 192.168.0.254: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

iptables -A INPUT -i eth1 -p icmp -j DROP
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

论坛徽章:
0
32 [报告]
发表于 2004-06-04 17:57 |只看该作者

请高手指点: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会报错的。

论坛徽章:
0
33 [报告]
发表于 2004-06-04 18:08 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

在squid.conf加上如下四句,主要是做域名解析cache,因你内存比较大,可把1024这两个数值加大点,如:10240
dns_timeout 1 minutes
ipcache_size 1024 
ipcache_low 90
ipcache_high 95
fqdncache_size 1024

如还有什么问题你可参考这个内帖或精减一下squid.conf规则,只要必要的规则:http://bbs.chinaunix.net/forum/viewtopic.php?t=262683&highlight=unixli

论坛徽章:
0
34 [报告]
发表于 2004-06-04 23:43 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

请问dns_timeout 默认是2分钟,改成1分钟时间是不是更短了。
我修改了参数,还是出DNS的错误,连tom.com也出。
您所请求的网址(URL)无法获取

--------------------------------------------------------------------------------

当尝试读取以下网址(URL)时: http://www.tom.com/

发生了下列的错误:

无法将您输入的主机名称:www.tom.com转换成 IP 地址
域名服务器返回以下讯息:

No DNS records
这表示:

The cache was not able to resolve the hostname presented in the URL.
Check if the address is correct.
缓存服务器无法解析您输入网址(URL)中的主机名称,
请检查该名称是否正确。

本缓存服务器管理员:webmaster



--------------------------------------------------------------------------------

Generated Fri, 04 Jun 2004 15:40:30 GMT by zssysquid (squid/2.5.STABLE5)

论坛徽章:
0
35 [报告]
发表于 2004-06-05 08:14 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

如果你的上网是ADSL拨号的话,
请先设置  ADSL-setup时的DNS
只要linux可以解析,其实在SQUID中不设置DNS也可以解析。

论坛徽章:
0
36 [报告]
发表于 2004-06-05 10:15 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

  十分感谢各位Linux高手热情的回贴!

  昨天我按照unixli的建议修改设置后,今天上午网页浏览没有见快,感觉还是慢了。问题照旧,还是网站DNS解析跟不上,出错。我单位是走的光纤出口,有10M带宽,没有用ADSL上网。
  在CACHE.LOG中出同样的错误:
。。。。
2004/06/05 01:02:25| ipcacheParse: No Address records in response to 'crl.verisign.com'
2004/06/05 01:05:58| ipcacheParse: No Address records in response to 'liveupdate.symantecliveupdate.com'
2004/06/05 02:26:18| ipcacheParse: No Address records in response to 'wustat.windows.com'
2004/06/05 02:41:47| ipcacheParse: No Address records in response to 'www.avl.com.cn'
2004/06/05 03:28:46| WARNING: Unused ICP version -21 received from 202.96.128.68:53
2004/06/05 09:24:03| ipcacheParse: No Address records in response to 'gbs.gator.com'
。。。。。

  真拿它没办法了,我K掉SQUID进程后,直接在rc.local中用以下的语句,打不开的网站立即就OK了,包括CHINAUNIX。
touch /var/lock/subsys/local

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

/sbin/iptables -F
/sbin/iptables -t nat -F

/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.31.60.0/24 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.31.61.0/24 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.31.62.0/24 -j MASQUERADE

#/sbin/iptables -A INPUT -i eth1 -p icmp -j DROP
/sbin/iptables -A INPUT -i eth1  -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -p tcp -m state --state NEW -j DROP

  我想到一点,做透明代理和用ETH0网卡作内网还是用ETH1作内网有没有关系?是不是我单位的网络拓朴结构异常,有不妥当的地方?用SQUID缓存做透明代理是比较成熟的技术,可我就没有实现啊!

    请大侠们赐教!

论坛徽章:
0
37 [报告]
发表于 2004-06-05 10:39 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

我在安装时设置了内网ETH0网卡的IP和MASK:
192.168.0.254 255.255.255.0
内网网卡没有设置网关
设置外网ETH1:
210.14.X.X 255.255.255.0
外网的网关是上级光纤出口网管员给的:
210.14.X.1
我设置了DNS:
202.96.128.68 202.96.128.110
在服务器上浏览网页正常,说明DNS起了作用的。

论坛徽章:
0
38 [报告]
发表于 2004-06-06 10:37 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

我在网上查了有关采用SQUID后DNS解析说明,有以下的讲解:

解析DNS的过程是根据Linux服务器中设置的/etc/host.conf文件中的解析顺序进行的。一般的顺序是先查找/etc/hosts,然后找DNS数据库bind。

假若你设置了透明代理的话,则解析的DNS顺序便变为
\windows\hosts然后再Linux的DNS数据库。不再可能检查Linux服务器上的/etc/hosts文件了

Squid透明代理的优点是不需要每个客户机都设置代理地址和端口与,简化了用户端 配置。但是需要每台客户机的默认网关都设为squid代理服务器,且需要客户端来做DNS解析

在客户端肯定是设置了电信的202.96.128.68DNS的,采用透明代理后DNS解析就只用LINUX上的DNS数据库了,我的问题是不是出在LINUX的DNS数据库上,请问怎样查看,需要特殊的配置吗?

论坛徽章:
0
39 [报告]
发表于 2004-06-06 10:49 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

要不将我的配置给你,你再试试?

论坛徽章:
0
40 [报告]
发表于 2004-06-07 11:20 |只看该作者

请高手指点:squid+iptable透明代理DNS解析不了

错误
您所请求的网址(URL)无法获取

--------------------------------------------------------------------------------

当尝试读取以下网址(URL)时: http://www.huawei.com.cn/index.shtml

发生了下列的错误:

Zero Sized Reply
响应内容长度为零
Squid did not receive any data for this request.
本缓存服务器从被连接的服务器上没有收到任何数据。

本缓存服务器管理员:webmaster



--------------------------------------------------------------------------------

Generated Mon, 07 Jun 2004 03:13:07 GMT by zssysquid (squid/2.5.STABLE5)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP