Squid 父代理需要 ICP 端口吗?
把 Squid 接到普通的 HTTP 父代理,避免把 HTTP 转发与可选的缓存查询流量混为一谈。
你的上游服务只提供一个 HTTP 代理端口,而 Squid 的 cache_peer 语法却要求两个。多出来的字段用于缓存查询,并不是第二条必需的转发连接。
cache_peer parent.example parent 8080 0 no-query name=office_parent
这里的 8080 承载 HTTP 代理请求。零占住查询端口字段;no-query 关闭向该对端发送的 ICP 查询。父代理由此不必实现 ICP。
但它必须说 HTTP 代理协议。如果父代理要对外公开,HTTP 代理列表提供了可供核对的 HTTP 候选。用 SOCKS 端口顶替是不行的。走 HTTPS 时,要确认父代理允许所需的 CONNECT 目标;ICP 支持与此无关。
访问控制与后续路由策略要分开处理。声明这个对端既不给客户端授权,也不禁止直连回退。请为预期的请求保留相应的 http_access、对端选择与 never_direct 规则。
改 ICP 端口修不好被拒绝的代理登录,也修不好被拒绝的 CONNECT 目标。