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 安装在本机: