今天在外面通过懒猫转发访问路由器时,发现需要逐一映射多个内网地址,操作起来有点麻烦,于是想到了一种一劳永逸的解决办法。
最开始我用 Squid 来代理 AWS VPC,后来想到懒猫也可以用作同样的功能。以下是我准备的 Compose 配置,我已经完成了 app 镜像的复制。
services:
squid:
container_name: squid
ports:
- 3128:3128
image: registry.lazycat.cloud/u04123229/ubuntu/squid:c534e32e8e1e766e
networks: {}下面是 Docker 截图:

默认安装后,Squid 的默认规则会屏蔽所有网站。若要访问内网地址,就会看到“访问被拒绝”的提示。接下来,我们需要修改转发规则。

进入 Squid 容器,编辑配置文件,然后重启容器即可生效:
sudo vim /etc/squid/squid.conf
# 在文件底部添加以下行以允许所有 HTTP 访问
http_access allow all现在就可以使用你喜欢的工具进行访问了。

然后就可以在外边访问私有地址了。

或者在终端上,通过设置环境变量以通过代理服务器访问 HTTP 和 HTTPS:
export http_proxy=http://your_proxy_ip:3128
export https_proxy=http://your_proxy_ip:3128如果你需要白名单功能:
首先,创建一个包含你希望允许访问的域名的白名单文件。该文件会用于匹配允许的域名。
打开终端并创建白名单文件。例如,我们将其存放在
/etc/squid/whitelist路径:sudo vim /etc/squid/whitelist在文件中,每行列出一个希望允许访问的域名。例如:
.youtube.com .bilibili.com .example.com这样就允许
youtube.com、bilibili.com和example.com的请求通过代理,而其他未列出的域名将被拒绝。
2. 编辑 squid.conf 配置文件
接下来,编辑 Squid 的主配置文件 squid.conf,将白名单配置添加到文件中。
打开 Squid 配置文件:
sudo vim /etc/squid/squid.conf在文件中,找到并添加以下规则:
允许
localhost访问:http_access allow localhost该规则允许本地计算机(localhost)访问代理服务器。
添加白名单配置:
acl whitelist dstdomain "/etc/squid/whitelist" http_access allow whitelist这两行配置定义了一个名为
whitelist的 ACL(访问控制列表),它从/etc/squid/whitelist文件中加载允许的域名。然后,我们允许匹配这些域名的请求。拒绝所有其他访问:
http_access deny all该规则确保只有白名单中的域名可以访问代理,其他所有请求都将被拒绝。
配置端口和缓存:
你可以在
squid.conf文件中设置 Squid 的监听端口并配置缓存目录(如有需要)。例如:http_port 3128 coredump_dir /var/spool/squid

