![Curl: プロキシを使用しながらカスタム ヘッダーを送信する方法](https://rvso.com/image/1457457/Curl%3A%20%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%AA%E3%81%8C%E3%82%89%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%20%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%82%92%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png)
プロキシを使用しているときに、カスタム ヘッダーをホストに送信したいです。以下の例をご覧ください。例を使用して状況を説明すると、より簡単になります。
これは期待どおりに正常に動作します:
curl https://www.cloudflare.com/
ホストの IP アドレスを curl に指定して DNS の使用を回避することを選択した場合:
curl http://198.41.214.163/
ウェブサイトにこのエラーページが表示されます -->
「直接 IP アクセスは許可されません。CloudFlare ネットワークの一部である IP アドレスをリクエストしました。有効なホストヘッダーを指定する必要があります 目的のウェブサイトにアクセスします。」
正しいホスト ヘッダー名を指定すると、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
--proxy-header
この問題は、プロキシ サーバー用のヘッダーを指定するためのパラメーターが導入された cURL 7.37.0 で解消されるはずです-H
。/で指定されたヘッダーは--header
、現在「エンド サーバーのみ」として表示されます。