网络环境:
squid主机安装两块网卡:192.168.0.251,192.168.1.1
内网web服务器:192.168.1.3
内网其它客户端:192.168.1.4
外网客户端:192.168.0.68
squid主机单独作正向代理和单独作反向代理时都能成功,但是,正反向代理同时打开时,反向代理可以成功,但正向代理不能成功,即内网不能访问外部,出现拒绝的提示
squid3为ubuntu 8.10 server,squid版本为3.0
正反向同时代理时,squid.conf主要内容如下:
http_port 3128 transparent #正向代理用
http_port 80 transparent #反向代理用
cache_peer 192.168.1.3 parent 80 0 no-query originserver
cache_peer_access 192.168.1.3 allow accel_port
cache_peer_access 192.168.1.3 deny all
acl lweb dst 127.0.0.1/32 192.168.0.251/32 192.168.1.1/32
acl sina dstdomain .sina.com.cn
acl accel_port myport 80
acl proxy_port myport 3128
http_access allow proxy_prot lnet sina
http_access allow accel_port lweb
个人推测主要原因可能是出在cache_peer那里,因为所有请求都会cache_peer转到指定的192.168.1.3服务器上,但192.168.1.3又拒绝由3128端口的请求,关键是如何让通过3128端口代理的请求向internet请求?请各位帮助
squid3正反向代理同时应用的问题?
-
- 帖子: 13
- 注册时间: 2007-01-12 13:23
-
- 帖子: 13
- 注册时间: 2007-01-12 13:23
Re: squid3正反向代理同时应用的问题?
问题找到了,原来是"http_access allow proxy_prot lnet sina"这一句的问题,改为"http_access allow lnet sina"就行了,即对myport不作限定才行.
然后再加下如下两句:
always_direct allow lnet #lnet的ip直接连接到internet
never_direct allow lweb #以lweb为目的不能直接到目的
如果不加上,内网所有的外部访问都会定位到192.168.1.3 web服务器上
然后再加下如下两句:
always_direct allow lnet #lnet的ip直接连接到internet
never_direct allow lweb #以lweb为目的不能直接到目的
如果不加上,内网所有的外部访问都会定位到192.168.1.3 web服务器上
-
- 帖子: 13
- 注册时间: 2007-01-12 13:23
Re: squid3正反向代理同时应用的问题?
至此,在外网用浏览器找开http://192.168.0.251,可以成功访问,内网访问internet也没问题
后来为了用实现用域名访问内网web,在外部客户端192.168.0.68的host文件中加入
192.168.0.251 www.vweb.org
然后在squid.conf中加入cache_peer_domain 192.168.1.3 .vweb.org
重新应用,然后在在外部客户端192.168.0.68用浏览器打开http://www.vweb.org,结果不能访问,查了好久,结果是这一句"http_access allow accel_port lweb"的原因,改为"http_access allow accel_port"就可以了,但是还是不明白,为什么要这样改?
在试验中我改成
acl lweb dst 127.0.0.1/32 192.168.0.251/32 192.168.1.0/24
http_access allow accel_port lweb
这样也不行,真是很奇怪,只能
http_access allow accel_port这样才行,
难道一限定外网访问的目的就不行了吗?谁能解释一下
后来为了用实现用域名访问内网web,在外部客户端192.168.0.68的host文件中加入
192.168.0.251 www.vweb.org
然后在squid.conf中加入cache_peer_domain 192.168.1.3 .vweb.org
重新应用,然后在在外部客户端192.168.0.68用浏览器打开http://www.vweb.org,结果不能访问,查了好久,结果是这一句"http_access allow accel_port lweb"的原因,改为"http_access allow accel_port"就可以了,但是还是不明白,为什么要这样改?
在试验中我改成
acl lweb dst 127.0.0.1/32 192.168.0.251/32 192.168.1.0/24
http_access allow accel_port lweb
这样也不行,真是很奇怪,只能
http_access allow accel_port这样才行,
难道一限定外网访问的目的就不行了吗?谁能解释一下