Estou usando curl
para acessar alguns serviços da Web por meio de um proxy (uma instância de polipo
em execução na porta 8123, encadeada a um proxy ssh SOCKS5
). Se eu fornecer informações de proxy usando a variável de ambiente http_proxy
, ela funcionará bem para solicitações que usam nomes de host:
$ http_proxy=http://localhost:8123 curl http://overcloud-public-vip:5000/v2.0
{"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", ...
O nome overcloud-public-vip
não pode ser resolvido localmente, mas pode ser resolvido pelo proxy remoto para 192.168.30.6. Se eu tentar usar o endereço IP do host de destino em vez do nome do host, ele falhará:
$ http_proxy=http://localhost:8123 curl http://192.168.30.6:5000/v2.0/
Por outro lado, o mesmo URL funciona bem se eu usar o -x
opção de linha de comando em vez de uma variável de ambiente:
$ curl -x http://localhost:8123 http://192.168.30.6:5000/v2.0/
{"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", ...
Por que há um comportamento diferente ao especificar o proxy usando um opção de linha de comando vs. especificando o proxy no ambiente? Isso é um bug, ou estou faltando alguma coisa?