컬은 다른 DNS 옵션보다 arg(또는 다른 것)를 확인하기 위해 제공된 IP의 우선 순위를 지정합니다.

컬은 다른 DNS 옵션보다 arg(또는 다른 것)를 확인하기 위해 제공된 IP의 우선 순위를 지정합니다.

잘못 구성된 DNS 항목(실험 중이고 당시에는 알려지지 않음)을 해결하기 위해 컬을 사용하려고 시도할 때 --resolve올바른 방법인 것처럼 보였습니다. 그러나 인수는 내가 예상한 방식과 (성공적으로) 404의 방식으로 작동하지 않았습니다.

적절한 항목을 추가하기 위해 시스템 /etc/hosts파일을 편집하면 제대로 작동하므로 이것이 컬이 DNS를 해결하는 방법의 일부인 것 같습니다. 실제로 IP를 유효하지 않은 것으로 변경하는 것도 arg 및 404 /etc/hosts보다 우선순위를 받습니다 .--resolve

내장 인수를 통해 시스템이 제공하는 모든 것에 대해 컬이 이름에 대한 특정 IP를 확인하도록 강제할 수 있습니까? (그리고 --resolve다른 것과 결합되어 있습니까 ?)


아래 예; 유죄를 보호하기 위해 이름과 주소가 변경되었습니다.

% curl -L -vv --resolve "foo.example.com:80:10.14.0.1" "https://foo.example.com/path"
* Added foo.example.com:80:10.14.0.1 to DNS cache
*   Trying 10.15.0.1
* TCP_NODELAY set
* Connected to foo.example.com (10.15.0.1) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
 CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

답변1

방금 답을 찾았습니다. --resolve올바른 포트를 지정해야 합니다(여러 포트일 수 있음).

또한 *호스트(포트는 아님!)에 사용될 수 있으므로 인수가 단순화됩니다. 맨페이지에는 모든 내용이 매우 명확하게 나와 있습니다.

% curl -L -vv --resolve "*:80:10.14.0.1" --resolve "*:443:10.14.0.1" "https://foo.example.com/path"
* Added foo.example.com:443:10.14.0.1 to DNS cache
*   Trying 10.14.0.1

관련 정보