Squid 返回的第一个 407 可能正是身份验证的起点。要找出某次尝试停在哪里,可沿着一条请求链路依次查看客户端、身份验证机制和访问判定。

在 Squid 7 的诊断会话中,第 29 节包含身份验证的调试消息。临时配置可以在保留整体警告级别的同时提高该节:

debug_options ALL,1 29,5

记下先前的调试设置,应用诊断配置,并复现一次小型且可识别的尝试。在配置好的 cache_log 目标处结合访问日志阅读调试输出。

要寻找的证据它回答的问题
给出的 Proxy-Authenticate 方案此代理要求客户端使用什么?
客户端的身份验证响应客户端是否继续了给出的交换?
身份验证机制或辅助程序的结果账户是被接受、拒绝,还是因处理故障而被阻断?
Squid 的访问策略判定在该身份验证状态之后,请求发生了什么?

某些方案需要多轮质询。仅仅出现重复的 407 记录,并不能证明浏览器忽略了提示,也不能证明提供的密码有误。

遇到辅助程序故障时,检查配置的辅助程序及其特定于方案的结果协议。无法启动的进程与正在运行却拒绝账户的辅助程序是不同的问题。如果身份验证已被接受但 Squid 仍拒绝该请求,请遵循相应的访问规则。

弄清整条链路后,恢复原来的调试级别。完整的第 9 级输出可能非常庞大;身份验证诊断也需要受限处理,因为账户信息和其他敏感状态可能会出现在其中。

相关文章