wangdejiu 发表于 2010-09-06 15:29

Squid 透明代理DNS查询的一个问题

Squid 透明代理DNS查询的一个问题


假如拓扑如上,访问过程如下:
1:Client -> DNS 解析 到WEB 172.16.2.56
2:Client -> 172.16.2.56 被GW 拦截 重定向到 Squid
3:Squid 查询DNS 解析到目的IP,然后代理发送请求!
4:Squid 缓存数据,并返回给Client

问题出在:
我根本就不需要 第3步, Client 的数据包里的目的IP,就是目的服务器的IP,最主要的是,一些环境必须要以Client 目的IP 为准!
请问大家知不知道相关设置!

aaaaaa 发表于 2010-09-06 20:31

修改后台程序,判断如是内部地址(squid),则取 X-Forwarded-For headers 作为用户地址,应该可以吧?

wangdejiu 发表于 2010-09-07 09:20

这是透明模式,我的意思是,Client 经过DNS 的到WEB ip后,连接出去,被IPTABLES拦截重定向到Squid,这个时候Squid 会根据Host,DNS查询到目的服务器的IP,然后连接的原始服务器,我想忽略这个过程,因为Client已经查询过了,请问有什么办法!

补充:
编译Squid 使用了 --enable-linux-netfilter

aaaaaa 发表于 2010-09-07 10:02

明白你说的意思了,你的希望squid不用做dns解析,让squid直接用client发出的目标地址来作请求。squid有这个实现吗?

我熟悉的ts里有一个公司支持了一个项目,重作透明代理实现,实现的文档比较细,我因为基本用不上代理模式,因此并没有测试,或许楼主可以对比一下。
http://people.apache.org/~amc/tiphares/home.html
从文档上看比较有意思,能够支持好几个模式的代理方式。目前的trafficserver的svn版本已经把这个功能加入进去了。请根据下面的信息svn co 出来:zym@zym6400 ~/tmp/traffic/trunk $ svn info
路径: .
URL: https://svn.apache.org/repos/asf/trafficserver/traffic/trunk
版本库根: https://svn.apache.org/repos/asf
版本库 UUID: 13f79535-47bb-0310-9956-ffa450edef68
版本: 993192
节点种类: 目录
调度: 正常
最后修改的作者: amc
最后修改的版本: 992525
最后修改的时间: 2010-09-04 11:33:42 +0800 (六, 2010-09-04)

楼主的要求比较特殊,建议多搜索、测试,甚至看看代码:D

wangdejiu 发表于 2010-09-07 10:39

非常感谢!

ox1943 发表于 2013-03-23 17:05

我刚好需要你现在的模式,但是为什么,我默认就是你想要的模式呢?
我想让squid 用自己的设定的DNS server   解析IP 然后去访问,你现有情况 ./config 的时候 开的是那些参数 ?
PS:http://bbs.chinaunix.net/thread-1917460-1-1.html   我不确定这个是不是你需要的
页: [1]
查看完整版本: Squid 透明代理DNS查询的一个问题