为什么 Squid 代理没有按要求添加 X-Forwarded-For 和 Via 标头?

为什么 Squid 代理没有按要求添加 X-Forwarded-For 和 Via 标头?

根据 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

似乎/headershttp-bin有某种预处理功能,可能会删除一些标头。因此问题不在于 Squid 本身,而在于用于验证其功能的机制。

相关内容