我安装并配置了 squid 代理作为透明代理服务器。当我尝试使用 Firefox 时,代理服务器工作正常,我可以访问 https 和 http 端口。但当我使用透明代理服务器时,我只能访问 https 网站,就像https://google.com
没有一样http://google.com
这是我的 squid.conf 的样子:
acl our_networks src 192.168.20.0/24
http_access allow our_networks
#Recommended minimum configuration:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
#
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_port 3128 transparent
icp_port 0
这是我的 IPtable 配置
$IPTABLES -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.20.21:3128
#$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
我错过了什么?我正在跑步squid 2.7 stable 9
谢谢,
答案1
你缺乏对 SSL 的基本了解:)
SSL 连接的透明代理是不可能的,因为您的代理将无法提供正确的证书,导致所有浏览器显示有关每个 https 网站的证书警告。
除此之外,您的代理配置也相当不安全(它允许任何人从 192.168.20.0/24 连接到任何地方的任何端口)并且您忘记重定向端口 443(尽管正如我所说,它只会导致客户端出现错误)。