Squid 代理服务配置问题

Squid 代理服务配置问题

我安装了 squid 代理来过滤来自 docker 的出站流量。具体来说,我使用 docker 创建了一个 jupyterhub 环境,以便隔离每个用户并为他们提供虚拟环境。

现在我想去过滤出站流量,以便它们只能访问某些域和使用 jupyterhub 的 docker 本地安装的服务。

使用 cURL 调用代理可以正常工作。它仅允许输入的域并让我们访问本地 jupyterhub 服务。但是,从 Web 界面打开它时,会出现此错误:

在此处输入图片描述

我已经启用服务ip 172.17.0.1和端口8081并且cUrl测试正在运行。

我该如何修复它?

一些配置:

配置.json(〜/ .config.json):

{
 "proxies":
{
   "default":
   {
     "httpProxy": "http://127.0.0.1:3128",
     "httpsProxy": "http://127.0.0.1:3128",
     "noProxy": "127.0.0.0/8"
   }
 }
}

squid.conf(/etc/squid/squid.conf):

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 localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl localnet src 172.17.0.1/32

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 443         # https
acl CONNECT method CONNECT

#### 23/06/2021 #############
acl jupyterhub_port port 8081
acl jupyterhub_addr dst 172.17.0.1
http_access allow jupyterhub_port jupyterhub_addr

# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

###### 18/06/2021

acl whitelist dstdomain .python.org .pypi.org .pythonhosted.org .pypa.io .yahoo.com
http_access allow whitelist

# And finally deny all other access to this proxy
http_access deny all

# Squid normally listens to port 3128
http_port 3128

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

# Add any of your own refresh_pattern entries above these.
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

通过代理 curl:

curl http://172.17.0.1:8081/hub/api --proxy 127.0.0.1:3128
{"version": "1.4.1"}

答案1

最后,我的配置文件是正确的;)我只是错误地在 config.json (~/.config.json) localhost 中指定了 ip LAN 地址(docker 是一个外部环境):

{
 "proxies":
{
   "default":
   {
     "httpProxy": "http://172.31.31.111:3128",
     "httpsProxy": "http://172.31.31.111:3128",
     "noProxy": "172.31.33.81/8"
   }
 }
}

相关内容