cURL 无法解释主机名,代理问题?

cURL 无法解释主机名,代理问题?

当我从我的 ubuntu 机器上使用 cURL 从远程机器获取 GET 信息时,我似乎无法解析主机名,而只是出现代理问题 -The proxy has encountered an error (Error 21: Server Hostname Not Found)运行时:

curl remotehostname

但是,我可以 ping 通它的两个remotehostname地址和它的 ip 地址,而且curl只使用 ip 地址就可以正常工作,例如curl 1.2.3.4

ApacheHttpClient我甚至尝试了一个使用Jersey 实现的Java 程序Client,并且它也运行良好。

当其他一切似乎都可以解释时,cURL 无法解释,这有什么特殊原因吗remotehostname?我想这是一个与代理相关的问题,但据我所知,我的代理设置得很好,因为其他一切似乎都可以工作,只是 cURL 不行。

答案1

尝试使用跟随重定向选项。curl -L remotehostname(“L”大写)。要检查这是否是代理的问题,而不仅仅是您下载的 URL 的问题,请测试不同的 URL 以查看是否出现相同的错误。

答案2

我想有点太晚了,但我遇到过类似的问题,而且这对我有用:

curl -4 remotehostname

此选项告诉 curl 仅将名称解析为 IPv4 地址。

使用 wireshark 监控数据包,我发现 curl 正在尝试将主机名解析为 IPV6 地址,但这是不可能的。

希望它也对你有用,祝你好运。

相关内容