Curl 7.27: Conjunto de [ANY] _PROXY; curl não resolve o nome do host via proxy

2

Estou usando o curl com um proxy Socks. O proxy está configurado via ANY_PROXY="socks5://NNN.NNN.NNN.NNN.PPPP"

Eu observei que curl resolve o nome do host localmente, não por meio do proxy. Ao solicitar um URL com um IP, o pedido funciona bem, com o nome do host que não pode ser resolvido localmente, o curl falha.

Na página man, encontrei esta opção CLI explícita:

   --socks5-hostname <host[:port]>
          Use the specified SOCKS5 proxy (and let the proxy resolve the host name).

Curiosamente, o texto dentro das ênfases dos parênteses é que essa opção também resolverá o nome do host por meio do proxy. Mas isso é tudo sobre resolução de nome de host, no resto da página man, não há nenhuma palavra mencionando como a resolução de nomes funciona com proxies.

Versão: curl 7.27.0 (x86_64-redhat-linux-gnu) libcurl/7.27.0 NSS/3.15.1 zlib/1.2.7 libidn/1.26 libssh2/1.4.3

Existe uma opção ou variável de ambiente alternativa que fará com que o curl resolva nomes de host via proxy sem precisar especificar --socks5-hostname <host:port> ?

    
por try-catch-finally 25.12.2014 / 17:41

1 resposta

5

OK para idiotas como eu, aqui está a parte do subtile:

Since 7.21.7, this option is superfluous since you can specify a socks5 hostname proxy with -x, --proxy using a socks5h:// protocol prefix.

O pequeno h após o socks5 diz ao curl para pesquisar nomes de host também via proxy.

Para fazer um curl procurando nomes de host via proxy , é necessário exportar:

ALL_PROXY="socks5h://NNN.NNN.NNN.NNN.PPPP"

comparado a um proxy que pesquisará localmente :

ALL_PROXY="socks5://NNN.NNN.NNN.NNN.PPPP"
    
por 24.10.2017 / 11:51

Tags