根据 Squid 代理文档通过和转发应该按默认设置标题,但它们没有显示在我的配置中。
我安装了一个全新的 Squid 实例,为了简单起见,我只添加了http_access allow all
配置(不推荐,因为不安全)。但它仍然不起作用。
我在 Ubuntu 18.04 上尝试了 Squid 3.5 版,在 Ubuntu 22.04 上尝试了 Squid 5.2 版。我http://httpbin.org/headers
在浏览器中进行了测试(打印的结果来自 3.5 版):
{
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "de,en-US;q=0.7,en;q=0.3",
"Host": "httpbin.org",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0",
"X-Amzn-Trace-Id": "Root=1-65d92b79-4f5d01607a3b091342c4e694"
}
}
我还通过http://icanhazip.com
浏览器检查了我的公共 IP。它返回了代理的 IP,因此连接正常。
我需要考虑哪些情况?
答案1
通过运行一个简单的 Python Web 服务器,我可以确定标头确实是相应地设置的。
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: image/avif,image/webp,*/*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://<web-serverip>:<web-server-port>/
Host: <web-serverip>:<web-server-port>
Via: 1.1 <proxy_name> (squid/5.2)
X-Forwarded-For: <Client-IP>
Cache-Control: max-age=259200
Connection: keep-alive
似乎/headers
是http-bin有某种预处理功能,可能会删除一些标头。因此问题不在于 Squid 本身,而在于用于验证其功能的机制。