From a875d790b092baccb847625dbdfabf09bab66284 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 15 Jul 2026 13:26:12 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=96=B0=E5=A2=9E=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E5=90=8E=E5=BF=85=E5=81=9A=E7=AB=A0=E8=8A=82=20-=20Squid=20?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=20ACL=20=E6=94=BE=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 踩坑记录: Squid 默认配置里 localnet ACL 定义了 10/8, 172.16/12, 192.168/16 等内网段,但 'http_access allow localnet' 默认被注释掉, 导致内网客户端所有代理请求返回 403 TCP_DENIED。 新增 '⚠️ 部署后必做' 章节,提供: - 症状描述 - 两种修复方式 (Web UI / 命令行) - 验证方法 - 安全警告 (不要 allow all,会被全球黑名单) --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/README.md b/README.md index 56179af..b3221fd 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,47 @@ systemctl enable --now squid-manager **首次登录后请立即修改密码** (左侧导航 → 修改密码)。 +## ⚠️ 部署后必做:Squid 服务端 ACL 放行 + +Squid 安装后默认配置里 `localnet` ACL 虽然定义了 `10.0.0.0/8`、`172.16.0.0/12`、`192.168.0.0/16` 等内网段,但 **对应的 `http_access allow localnet` 这一行默认被注释掉**。如果你的 Squid 同时跑在公网或混合网段,内网客户端的所有代理请求会全部返回 `403 TCP_DENIED`。 + +**症状**: 客户端配置了代理,浏览器打不开任何网站;`/var/log/squid/access.log` 里看到 `TCP_DENIED/403` 而不是 `TCP_MISS/200`。 + +**修复** (任选一种): + +### 方式一: 通过 Squid Manager Web UI(推荐,有 diff 预览和审计) + +1. 登录平台 → **原始编辑** → 在 `http_access allow localhost` 下面、 `http_access deny all` 上面插入一行: + + ``` + http_access allow localnet + ``` + +2. 点保存 → 看 diff 预览 → 确认 → 自动备份 + 写盘 + +3. 回到 **服务控制** 页 → 点 **平滑重载 (reload)** + +### 方式二: 直接编辑 /etc/squid/squid.conf + +```bash +cp /etc/squid/squid.conf /etc/squid/squid.conf.bak +# 在 http_access allow localhost 之后插入一行: +sed -i '/^http_access allow localhost$/a http_access allow localnet' /etc/squid/squid.conf +squid -k parse -f /etc/squid/squid.conf # 语法校验 +squid -k reconfigure # 让新配置生效 +``` + +### 验证生效 + +```bash +# 从另一台内网机器(比如你的 Windows 10.168.1.201) +curl -x http://:3128 -I http://example.com +# 应该返回 HTTP/1.1 200 OK +# 之前会是 403 Forbidden 或连接重置 +``` + +> ⚠️ **不要把 `http_access allow all` 加上去** — 那会变成开放代理,服务器 IP 会在 24 小时内被全球黑名单(Spamhaus / Tor exit list / 各种威胁情报)列入。 + ## 配置路径 默认假设 Squid 安装在本机: