免费注册 查看新帖 |

Chinaunix

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

[proxy] 用squid+iptable做透明代理出现DNS问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-03 15:56 |只看该作者 |倒序浏览
配置方法:
用squid+iptable实现透明代理

squid和iptable的具体安装我在此不做太多说明,一般看看它们的说明即可。我公司用一台机器作为代理上网。eth0连接外部网,eth1连接内部网。下面把我的配置写下来。

iptable的配置,在/etc/rc.d/目录下用touch命令建立firewall文件,执行chmod u+x firewll以更改文件属性,编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall以确保开机时能自动执行该脚本。
echo "starting ip forward"
echo 1 >;/proc/sys/net/ipv4/ip_forward
echo "starting iptables rules"
modprobe ip_tables
modprobe ip_nat_ftp
/sbin/iptables -F -t nat
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 #将所有80端口的包转发到3128端口
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #对eth0端口进行欺骗

squid的配置
http_port 3128
cache_mem 512 M
cache_swap_low 75
cache_swap_high 95
maximum_object_size 1024 KB
cache_dir ufs /usr/local/squid/cache 60000 16 256
cache_access_log /var/squid/logs/access.log
cache_log /dev/null
cache_store_log none
debug_options ALL,1

icp_access allow all
icp_query_time out 2000

cache_effective_user nobody
cache_effective_group nogroup

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
acl all src 0.0.0.0/0
acl localnet src 10.0.0.0/20
http_access allow localnet
http_access deny all

acl QUERY urlpath_regex -i cgi-bin \? \.exe$ \.zip$ \.mp3$ \.mp2$ \.rm$ \.avi$
no_cache deny QUERY

reference_age 3 days
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
connect_timeout 60 seconds
read_timeout 3 minutes
request_timeout 30 seconds
client_lifetime 30 seconds
half_closed_clients off
pconn_timeout 60 seconds
ident_timeout 10 seconds
shutdown_lifetime 10 seconds

memory_pools off
memory_pools_limit 0


其中reference_age 3 days,ident_timeout 10 seconds两行出错:
2005/03/03 15:09:34| parseConfigFile: line 3379 unrecognized: 'reference_age 3 days'
2005/03/03 15:34:57| parseConfigFile: line 1645 unrecognized: 'ident_timeout 10 seconds'


透明代理可以实现,但是DNS有问题,在客户端浏览器输入IP可以访问外网,输入域名就不行,在客户端命令行模式下执行nslookup命令,提示

  1. DNS request time out
复制代码


在squid.conf中加入

  1. acl Safe_ports port 53          # dns
复制代码
故障依旧

请大侠帮助看看如何处理,谢谢!

论坛徽章:
0
2 [报告]
发表于 2005-03-03 17:21 |只看该作者

用squid+iptable做透明代理出现DNS问题

iptables  -A FORWARD -p udp --dport 53 -j ACCEPT

论坛徽章:
0
3 [报告]
发表于 2005-03-03 17:30 |只看该作者

用squid+iptable做透明代理出现DNS问题

其实可以在LINUX上起一个bind
然后让client的DNS服务器指向LINUX
这样就不用做转发了

论坛徽章:
0
4 [报告]
发表于 2005-03-03 17:33 |只看该作者

用squid+iptable做透明代理出现DNS问题

原帖由 "platinum" 发表:
其实可以在LINUX上起一个bind
然后让client的DNS服务器指向LINUX
这样就不用做转发了


就是说这个服务器同时做代理和DNS?可以考虑。

我在用DHCP,这样这个同时也做DHCP吧,没有问题吧?呵呵

Opteron×2,1GB内存

论坛徽章:
0
5 [报告]
发表于 2005-03-03 23:33 |只看该作者

用squid+iptable做透明代理出现DNS问题

看你的用户数了,倒也没什么大事儿。用上了,观察几天。

论坛徽章:
0
6 [报告]
发表于 2005-03-04 08:21 |只看该作者

用squid+iptable做透明代理出现DNS问题

[quote]原帖由 "水中风铃"]iptables  -A FORWARD -p udp --dport 53 -j ACCEPT[/quote 发表:


我这样做故障依旧

后来我运行setup,重新配置防火墙,在自定义端口那里写了53,然后重启iptables,重新运行自己的firewall脚本即可,squid都没有重启,成功!也就是说只是在代理服务器上面增开了53端口。因为没有启动bind服务,用nmap扫描服务器并没有发现53端口开放。

能否加为精华?吼吼

论坛徽章:
0
7 [报告]
发表于 2005-03-04 10:19 |只看该作者

用squid+iptable做透明代理出现DNS问题

楼上的什么意思,你不是squid没有重启吗?那在那里加53有何意义?

论坛徽章:
0
8 [报告]
发表于 2005-03-04 10:51 |只看该作者

用squid+iptable做透明代理出现DNS问题

[quote]原帖由 "水中风铃"]楼上的什么意思,你不是squid没有重启吗?那在那里加53有何意义?[/quote 发表:


我在iptables里面改的啊,然后把iptables重启了。

问题不在squid,在iptables。

论坛徽章:
0
9 [报告]
发表于 2005-03-04 13:29 |只看该作者

用squid+iptable做透明代理出现DNS问题

[quote]原帖由 "水中风铃"]楼上的什么意思,你不是squid没有重启吗?那在那里加53有何意义?[/quote 发表:


FAINT,53本来就不是在squid.conf中添加的,和squid没有过关系的,只和IPTABLES有关系,重起IPTABLES就OK了。

BTW:楼主把整个过程整理一下吧

论坛徽章:
0
10 [报告]
发表于 2005-03-04 17:32 |只看该作者

用squid+iptable做透明代理出现DNS问题

检查/etc/resolv.conf,l里面应该加上能用的dns地址。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP