Dns
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,但是如果我可以使其工作,這種 curl 方法似乎是“正確”的方法。有人看到我在這裡做錯了嗎?
看來
address
需要是數字 IP 地址,而不是主機名。嘗試這個:
curl --resolve foo.example.com:443:127.0.0.1 https://foo.example.com:443/
故障排除的一些額外幫助:
確保您列出了協議的正確埠: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 的邊緣伺服器上實施。