Curl:如何在使用代理程式時發送自訂標頭

Curl:如何在使用代理程式時發送自訂標頭

我想在使用代理時將自訂標頭髮送到主機。看看下面的例子。用例子解釋情況比較容易。

這按預期工作正常:

curl https://www.cloudflare.com/

當我選擇透過向curl提供主機的IP位址來避免使用DNS:

curl http://198.41.214.163/

網站給我這個錯誤頁面 -->

不允許直接 IP 存取。您要求的 IP 位址是 CloudFlare 網路的一部分。必須提供有效的主機標頭 到達所需的網站。


如果我們提供正確的主機頭名稱,它將在不使用 DNS 的情況下再次正常工作:

curl --header "Host: cloudflare.com" http://198.41.214.163/

但是當我在使用代理隧道時執行相同操作時,curl 不會將標頭髮送到主機,所以我得到“不允許直接IP訪問「 來自主機的錯誤:

curl --proxy "http://PROXY_IP:PORT" --header "Host: cloudflare.com" http://198.41.214.163/

我怎樣才能克服這個問題?

答案1

這個問題應該在 cURL 7.37.0 中消失,它引入了--proxy-header參數來指定用於代理伺服器的標頭。用-H/給出的標頭--header現在將被視為“僅限終端伺服器”。

相關內容