curl 的 Could not resolve proxy 和 Could not resolve host 有什么区别?
先分清 curl 找不到的是代理端点还是目标主机,再调整 DNS 或代理设置。
先看 curl 无法解析的是哪个名称。错误 5 和 6 指向代理请求的不同环节:
| 提示 | 含义及下一步检查 |
|---|---|
| Could not resolve proxy — error 5 | 检查实际选中的代理 URL 的主机部分,看看是否拼错、粘贴了空格,或把凭据及端口文字放错了位置。 |
| Could not resolve host — error 6 | 检查目标主机名,并确认所选路径是否在本地解析它。 |
数字形式的代理地址不需要普通的主机名查询。如果代理列表给出的是 IP,错误却指向另一个主机,应检查继承的代理环境变量及实际选中的端点。只接受主机名的输入框中,应填写地址本身,而不是完整的 IP:port 字符串。
解析目标地址时,curl 的 socks5 模式在客户端查询,socks5h 则把名称交给代理。对比两者可以发现DNS 视图的差异,但无法修复拼错的名称。如果交给代理的解析在代理端失败,curl 收到的可能是代理协议错误,而不是本地错误 6。
先确认代理 URL,再确认目标 URL,最后确认解析器所在位置;随后重试,不改动无关设置。DNS 成功只意味着取得了地址,连接该地址、代理握手以及目标请求仍须分别成功。