
根據 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 本身,而是用來驗證其功能的機制。