You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Squid TCP_DENIED/403内部错误页无Logo问题排查求助

解决Squid禁止页面缺少Logo的问题

嘿,看你的日志和描述,这问题我熟!Squid自己把加载内部Logo的请求给拦了,才导致错误页光秃秃的。咱们一步步来搞定:

问题根源

从你贴的日志 TCP_DENIED/403 4187 GET http://srv1.foo.bar:3128/squid-internal-static/icons/SN.png - HIER_NONE/- text/html 就能看明白——Squid在尝试加载自带的静态图标时,被自己的访问规则拒绝了。Ubuntu 18.04默认的Squid配置比较保守,没给自身的内部静态资源开访问权限。

修复步骤

1. 修改Squid配置

先打开主配置文件:

sudo nano /etc/squid/squid.conf

找到http_access deny all这一行(这是最后一条拒绝规则),在它前面加一段规则,允许Squid访问自己的静态资源:

# 允许访问Squid内部静态资源路径
acl squid_internal_assets urlpath_beg /squid-internal-static/
# 允许本地主机访问这些资源
http_access allow localhost squid_internal_assets
http_access allow to_localhost squid_internal_assets

localhost和to_localhost是Squid默认就有的ACL,已经涵盖了服务器自身的访问,不用额外定义域名,这样更稳妥。

2. 验证配置并重启

先检查配置有没有语法错误,避免重启失败:

sudo squid -k parse

如果没报错,就重启Squid服务:

sudo systemctl restart squid

3. 测试效果

现在让被禁网的用户再触发一次错误页,应该就能看到Squid的Logo了。要是还不行,排查下这两点:

  • 本地能不能解析srv1.foo.bar:跑个ping srv1.foo.bar看看
  • 检查静态资源的权限:Ubuntu 18.04里这些图标默认在/usr/share/squid/icons/,确保proxy用户(Squid默认运行用户)有读取权限,用ls -l /usr/share/squid/icons/就能看

为啥默认会出这问题?

Ubuntu 18.04的默认Squid配置主打一个安全优先,只放行必要的访问请求,没默认开放自身内部静态资源的访问权限。当错误页尝试通过服务器域名加端口访问这些资源时,就被Squid的访问控制给拦住了,自然看不到Logo。

内容的提问来源于stack exchange,提问作者AxelF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:11:51