使用 ipfw 和 squid 的本地透明代理

使用 ipfw 和 squid 的本地透明代理

我想使用本地透明代理,以便有一个输入办公室代理密码的地方。基本上,发送到端口 80 的所有 TCP 数据包(发送到特定子网的数据包除外)都应转发到本地 Squid。

Squid 在常规模式下工作正常,但当我将其切换到透明模式并在浏览器中禁用代理时,浏览器无法连接到远程主机。ipfw通过添加规则检查,可以正常工作deny ip from any to any。调试很困难,因为它是 Mac OS,日志位于天知道的位置。

乌贼

 $ squid -v
Squid Cache: Version 3.2.9
configure options:  '--disable-debug' '--disable-dependency-tracking' '--prefix=/usr/local/Cellar/squid/3.2.9' '--localstatedir=/usr/local/var' '--enable-ssl' '--enable-ssl-crtd' '--disable-eui' '--enable-ipfw-transparent' 'CC=cc' 'CXX=c++' 'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/local/Library/ENV/pkgconfig/10.8'

规则

 $ sudo ipfw list
00100 fwd 127.0.0.1,3128 tcp from me to any dst-port 80
65535 allow ip from any to any

相关部分来自squid.conf

http_access allow localhost manager
http_access deny manager
http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localnet
http_access allow localhost

http_access deny all

http_port 3128 transparent

cache_peer proxy.office.com parent 8080 0 login=user:password
never_direct allow all

相关内容