我有以下配置文件。注释和空行已删除。开头的行#>
是我删除的,以使正常 http 正常工作。但它仍然被阻止。
acl localnet src 172.16.0.0/12 #docker
acl SSL_ports port 443
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 CONNECT method CONNECT
#>http_access deny !Safe_ports
#>http_access deny CONNECT !SSL_ports
http_access allow localhost manager
#>http_access deny manager
http_access allow localnet
http_access allow localhost
#>http_access deny all
http_port 3128
cache_dir aufs /media/richard/extra2/squid-cache 20000 16 256
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
如果我连接到,https 就可以工作127.0.0.1
;即使在禁用的情况下 https 也可以工作。
连接到 172.16.0.1(docker 接口上的同一台机器)时 https 不起作用。
我如何让 squid 代理纯文本http
?
答案1
我将其添加debug_options ALL,1 33,2
到配置文件的顶部,然后在日志中发现了这一点:
local=172.17.0.1:3128 remote=192.168.43.64
看起来它正在将远程检测为外部接口上的我的 IP 地址。然后我添加了
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
进入配置,它就可以正常工作了。请注意,这是一个安全问题,因为现在我们允许来自此网络的连接。
我不知道为什么远程 IP 不是来自同一网络。我不知道为什么https
会这样。我将使用本地防火墙,但我仍然希望修复(以防防火墙配置错误)。