我有两个使用 squid 作为透明代理的 Linux 网关。当我单独使用它们时,一切都很好。但是当我在同一个网络中使用它们时,来自浏览器的每个请求都会返回 403。
网络拓扑结构如下:
客户端 -> | 透明网关 A -> 透明网关 B | -> 互联网
A:172.16.0.1 B:10.190.90.1
- 如果网关 A 或网关 B 不存在,则一切正常。
- 如果它们都存在,客户端浏览器总是会得到 403。
iptables 设置为:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
编辑:
两个网关的 squid.conf 都是:
acl localnet src 10.0.0.0/8 # RFC1918 可能的内部网络
acl localnet src 172.16.0.0/12 # RFC1918 可能的内部网络
acl localnet src 192.168.0.0/16 # RFC1918 可能的内部网络
acl localnet src fc00::/7 # RFC 4193 本地私有网络范围
acl localnet src fe80::/10 # RFC 4291 本地链路(直接插入)
acl SSL_ports 端口 443
acl Safe_ports 端口 80 # http
acl Safe_ports 端口 21 # ftp
acl Safe_ports 端口 443 # https
acl Safe_ports 端口 70 # gopher
acl Safe_ports 端口 210 # wais
acl Safe_ports port 1025-65535 #未注册的端口
acl Safe_ports 端口 280 # http-mgmt
acl Safe_ports 端口 488#gss-http
acl Safe_ports 端口 591 # filemaker
acl Safe_ports 端口 777 # 多语言 http
acl CONNECT 方法 CONNECT
http_access 拒绝 !Safe_ports
http_access 拒绝连接 !SSL_ports
http_access 允许本地主机管理器
http_access 拒绝管理器
http_access 允许本地网络
http_access 允许本地主机
http_access 拒绝所有
http_port 3128 拦截
http_端口 3129