Squid 代理:curl 请求时出现 ACL 错误

Squid 代理:curl 请求时出现 ACL 错误

我的 squid.conf(squid3)

acl localnet src 192.168.1.0/255.255.255.0
acl localweb src 192.168.199.0/255.255.255.0
http_port 3128 transparent
http_access allow localnet
http_access allow localweb

我的(服务器 squid 也运行 dhcp 服务器)ip 是:

eth0 ip:192.168.1.10 bcast:192.168.1.255 网络掩码:255.255.255.0

eth1 ip:192.168.199.1 bcast:192.168.199.255 网络掩码:255.255.255.255

我想要运行的客户端命令是:

curl -x 192.168.1.10:3128 www.google.com

运行curl的客户端的源IP是:

IP 192.168.199.10 bcast 192.168.199.255 网络掩码 255.255.255.0

另外在服务器中我还添加了以下iptables规则:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128

问题是,在发出请求时向客户端返回以下消息:

192.168.199.10 TCP_DENIED GET www.google.com Err_Access_Denied by squid localhost (squid 3.1.19)

如果我执行一个简单的 sudo cat /var/log/squid3/access.log,我会看到:

1 192.168.199.10 TCP_DENIED/403 3629 获取http://www.google.com

如果我执行 curl -L -V ,我会得到很多信息,但总结一下:

获取 HTTP/1.1 用户代理 ***** curl
主机:www.google.com 接受:/代理连接:Keep-Alive HTTP 1.0,假定在主体之后关闭 HTTP/1.0 403 禁止服务器:squid/3.1.19 X-Cache:来自 localhost 的 Miss x-Cache-Lookup:来自 localhost:3128 的 NONE Via:1.0 localhost(squid/3.1.19)关闭连接 #0

因此,我假设我的客户端正在访问运行 squid 的主机,但 Squid 无法转发请求。我试过http_access allow all,但这也没用。

相关内容