为什么 Squid 会在意料之外的端口上监听 UDP
区分 Squid 的 DNS 与缓存对等体 UDP 套接字,以及客户端用作正向代理的 TCP 监听端口。
Squid 持有一个陌生的 UDP 端口,并不自动意味着它是另一个公共 HTTP 代理。客户端通过配置好的 TCP 监听端口访问普通 HTTP 代理;Squid 还会为 DNS 和缓存对等通信打开套接字。
要识别多余的套接字,请记录:
- 它是 TCP 还是 UDP、绑定地址以及显示的任何远程端点。
- 该实例生效的监听、DNS、ICP 和 HTCP 设置。
- 这些设置所启用的功能需要的网络可达性。
Squid 的 UDP 地址参考明确涵盖 DNS、ICP 和 HTCP 模块。它们的行为无法从 http_port 推断,仅凭高端口号也不能确定具体功能。
不要仅因为它出现在套接字列表里,就把该 UDP 端点填进应用的 HTTP 代理字段,或向所有客户端开放。反过来,封锁 Squid 实际使用的 DNS 路径可能会破坏后续的目标解析。应针对已识别的功能修改防火墙规则:解析器查询套接字、缓存对等端口和客户端监听端口承担不同职责。