“curl”使用 IP 地址时会忽略代理环境变量吗?

“curl”使用 IP 地址时会忽略代理环境变量吗?

我正在使用代理(在端口 8123 上运行的实例,链接到 ssh代理)curl访问一些 Web 服务。如果我使用环境变量提供代理信息,它对于使用主机名的请求就可以正常工作:polipoSOCKS5http_proxy

$ http_proxy=http://localhost:8123 curl http://overcloud-public-vip:5000/v2.0
{"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", ...

该名称overcloud-public-vip无法在本地解析,但可以通过远程代理将其解析为 192.168.30.6。如果我尝试使用目标主机的 IP 地址而不是主机名,则会失败:

$ http_proxy=http://localhost:8123 curl  http://192.168.30.6:5000/v2.0/

另一方面,如果我使用-x 命令行选项而不是环境变量,相同的 url 也可以正常工作:

$ curl -x http://localhost:8123 http://192.168.30.6:5000/v2.0/
{"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", ...

为什么使用命令行选项指定代理与在环境中指定代理时的行为会有所不同?这是错误吗,还是我遗漏了什么?

相关内容