web-dev-qa-db-ja.com

curl --resolveは何もしないようです

--help curlリストの出力--resolveオプション、

--resolve <Host:port:address> Force resolve of Host:PORT to ADDRESS

私はそれを機能させるのに運がありません。私が実行しようとしている基本的なコマンドは

curl --resolve foo.example.com:443:localhost https://foo.example.com:443/

と私は応答を得続けますCouldn't resolve Host 'foo.example.com'。 foo.example.comの証明書をテストしていますが、実際のサーバーではテストしていません。代わりに、ダミーマシンでテストしています。編集できることを知っています/etc/hosts foo.example.comがlocalhostに解決されるようにしますが、このカールアプローチは、私がそれを機能させることができれば、「正しい」方法になると思われます。

私がここで間違っていることを誰かが見ていますか?

37
tsuraan

addressは、ホスト名ではなく数値のIPアドレスである必要があるようです。

これを試して:

curl --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
61
Keith Thompson

トラブルシューティングに関する追加のヘルプ:

プロトコルに適切なポートをリストしていることを確認します。http= 80; https = 443など.

またcurl -vは、役立つ応答サーバーのHEADER情報を提供します。

$ curl -v --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
## The client request headers prepended by >
> OPTIONS /v1/..
> HOSTS foo.example.com
## The server response prepended by <
< HTTP/1.1 501 Not Implemented
## The html returned
<H1>Unsupported Request</H1>

基本的にこの場合、OPTIONS HTTPメソッドは、CDNのエッジサーバーに実装されていませんでした。

6
Manchego