為什麼 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

似乎是/headers終點http-bin有某種預處理可能會去除一些標頭。因此,問題不在於 Squid 本身,而是用來驗證其功能的機制。

相關內容