免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 15569 | 回复: 59
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-27 14:59 |只看该作者 |倒序浏览
我是一单位网管员,有三百左右站点通过一个公网IP上网,在网上看到在内存中建ramdisk,用Squid+iptables的方法来实现透明代理,我尝试了好久,但没有成功。后来不在内存中做ramdisk,直接用Squid+iptables,上网反而觉得慢了,而且在/var/log/squid/cache.log中出现大量错误:
2004/05/24 20:46:42| WARNING! Your cache is running out of filedescriptors
2004/05/24 20:46:58| WARNING! Your cache is running out of filedescriptors
还狂出以下错误:
2004/05/24 22:15:51| ipcacheParse: No Address records
2004/05/24 22:18:05| ipcacheParse: No Address records
当内存剩余到3-5M时(256M的内存),DNS又解析不好,打开网页反而出现
The requested URL could not be retrieved

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

While trying to retrieve the URL: http://www.gz-bus.com/

The following error was encountered:

Unable to determine IP address from host name for www.gz-bus.com
The dnsserver returned:

No DNS records
This means that:

The cache was not able to resolve the hostname presented in the URL.
Check if the address is correct.
Your cache administrator is root.

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

Generated Tue, 25 May 2004 00:17:07 GMT by squidcache (squid/2.5.STABLE1)
我在一些论坛中寻求高手帮助,可没有多少人理的。不知是不是大家早就解决了这个问题呢?有没有人用Squid+iptables做成功的,我在网上也看了不少关于这方面的资料,多次尝试,失败后开始怀疑了网上的文章了。我用的是RedHat9.0默认安装,关键的语句用的是:
iptables -t nat -A PREROUTING -i eth1 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/255.255.255.0 -j MASQUERADE
请大家指点,不胜感激!

论坛徽章:
0
2 [报告]
发表于 2004-05-27 16:14 |只看该作者

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

SQUID用硬盘做CACHE,速度应该也不慢。
我不用SQUID的CACHE时,速度很慢。所以我还是用了CACHE
速度也没有别人所说的很慢。
你的电脑内存本来就不多,还在内存中建RAMDISK,能行得通吗?
至于DNS解析,你可以试试WINDOWS指定DNS服务器。
最后一句,我想应该不对。
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/255.255.255.0 -j MASQUERADE

我可以看出你的拨号上网,所以你不要指定出口为 ETH0,直接用PPP0,再试试吧。愿你好运。

论坛徽章:
0
3 [报告]
发表于 2004-05-27 17:27 |只看该作者

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

十分感谢你的回贴。我用作硬盘CACHE的是一个PC测试机,只有256M内存。在我单位还有一台HP的服务器,1G的内存,平时作NAT时LINUX只用了不到100M,所以想试试RAMDISK,但在PC机上做硬盘CACHE时都没有成功。客户机上已经设置了电信的DNS:202.96.128.68。

论坛徽章:
0
4 [报告]
发表于 2004-05-27 17:32 |只看该作者

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

将PC机上做硬盘CACHE时都没有成功的相关错误贴出来,大家共同看看。

论坛徽章:
0
5 [报告]
发表于 2004-05-27 18:33 |只看该作者

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

在/var/log/squid/cache.log中出现大量错误:
2004/05/24 20:46:42| WARNING! Your cache is running out of filedescriptors
2004/05/24 20:46:58| WARNING! Your cache is running out of filedescriptors
还狂出以下错误:
2004/05/24 22:15:51| ipcacheParse: No Address records
2004/05/24 22:18:05| ipcacheParse: No Address records
还有大量的:
2004/05/24 21:08:31| WARNING: Closing client 172.31.62.64 connection due to lifetime timeout
2004/05/24 21:08:31|    http://101.76.86.36/
2004/05/24 21:08:31| WARNING: Closing client 172.31.62.64 connection due to lifetime timeout
2004/05/24 21:08:31|    http://34.222.58.18/
当内存剩余到3-5M时(256M的内存),DNS又解析不好,打开网页反而出现
The requested URL could not be retrieved

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

While trying to retrieve the URL: http://www.gz-bus.com/

The following error was encountered:

Unable to determine IP address from host name for www.gz-bus.com
The dnsserver returned:

No DNS records
This means that:

The cache was not able to resolve the hostname presented in the URL.
Check if the address is correct.
Your cache administrator is root.

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

Generated Tue, 25 May 2004 00:17:07 GMT by squidcache (squid/2.5.STABLE1)

论坛徽章:
0
6 [报告]
发表于 2004-05-27 18:41 |只看该作者

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

网络结构大致是:
内部用172.31.60.X-172.31.63.X,netmask:255.255.255.0,通过三层路由的主交换机到一个Interface出来:192.168.0.1。
代理服务器双网卡,eth0外网IP:210.14.XXX.XXX,eth1内网IP:192.168.0.254,重新装的RedHat9.0。
看来是有点罗嗦了。只用透明数据转发没问题的,用Squid+iptables做透明代理就出问题了。

论坛徽章:
0
7 [报告]
发表于 2004-05-27 21:18 |只看该作者

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

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/255.255.255.0 -j MASQUERADE

如你是固定公网IP,上面这句一般是这样的:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/255.255.255.0 -j  snat --to x.x.x.x(你的公网IP)

SQUID设置你可参考这个贴子:http://bbs.chinaunix.net/forum/viewtopic.php?t=262683&highlight=unixli
把你不要的拿掉,再加上这四句:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

论坛徽章:
0
8 [报告]
发表于 2004-05-28 08:02 |只看该作者

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

我查看/var/log/squid/cache.log有启动Squid时出现的错误:
2004/05/28 07:45:49| errorTryLoadText: '/usr/share/squid/errors/ERR_READ_TIMEOUT': (2) No such file or directory
2004/05/28 07:45:49| errorTryLoadText: '/usr/share/squid/errors/ERR_LIFETIME_EXP': (2) No such file or directory
2004/05/28 07:45:49|
...........
errorTryLoadText: '/usr/share/squid/errors/ERR_ONLY_IF_CACHED_MISS': (2) No such file or directory
2004/05/28 07:45:49| errorTryLoadText: '/usr/share/squid/errors/ERR_TOO_BIG': (2) No such file or directory

进入/usr/share/squid/errors,只看到有各种语言名称的目录,进入其中一个目录后才有ERR开头的上面报错找不到的文件,不知在squid.conf中有没有相关的设置?

论坛徽章:
0
9 [报告]
发表于 2004-05-28 08:09 |只看该作者

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

有,当然有。
error_directory /usr/share/squid/errors/Simplify_Chinese

才是对的。因为在/usr/share/squid/errors下只有目录没有文件。

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

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

谢谢圣骑士,我今天试着使用
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/255.255.255.0 -j snat --to x.x.x.x,观察cache.log,看运行正常不。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP