我的路由器上有一个 TinyProxy 代理,它将流量发送到不在 LAN 上的外部父 Squid 代理进行处理。我向 Squid 添加了授权,使其不完全向世界开放(如果用户将浏览器指向 Squid 代理,则必须提供用户名和密码,该代理可以正常工作)。
查看 TinyProxy 手册页,我可以看到可以通过 tinyproxy 向 Squid 父级发送基本授权 header 信息,但是当我尝试这样做时,它无法正确进行身份验证(没有浏览器配置。这是一个透明代理)并且我在 Squid 端收到访问错误。以下是 TinyProxy.conf 手册页的摘录:
AddHeader "X-My-Header" "Powered by Tinyproxy"
如果 Squid 上允许的用户的用户名是:test,密码是:test1234,密码哈希值是:123456789,这就是我在 TinyProxy.conf 文件中包含的内容:
AddHeader "Proxy-Authorization" "Basic test:123456789"
当我尝试访问 HTTP 站点时,它无法正确进行身份验证。格式有误吗?
也供引用,这是我的squid.conf
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
#http_access allow all
http_port 3128
最佳答案
我找到了解决问题的方法。添加 header 时,它不是采用“user:password_hash”的形式,而是采用 base64 字符串的形式。我刚刚使用在线转换器(http://www.tuxgraphics.org/toolbox/base64-javascript.html)将“test:test1234”转换为“dGVzdDp0ZXN0MTIzNA==”。 TinyProxy 中的 AddHeader 行将变为:
AddHeader "Proxy-Authorization" "Basic dGVzdDp0ZXN0MTIzNA=="
并且它的身份验证完美!我希望除了我之外的其他人发现这很有用,因为我找不到单个“TinyProxy”添加 header 的示例。
关于proxy - 如何在TinyProxy中正确添加 header 以在Squid中进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41368817/