Curl è tra i client HTTP con il miglior supporto ai proxy di tipo Socks5.

Questo è il modo per usare un proxy socks5 e risolvere l’hostname nell’url. Per alcuni utilizzi specifici, risolvere un hostname tramite il proxy è essenziale.

Supponiamo di avere un proxy socks5 che gira in localhost:8001

In curl versione 7.21.7 o superiori potete usare:

curl -x socks5h://localhost:8001 http://www.google.com/

Da curl verisone 7.18.0 potete utilizzare invece:

curl --socks5-hostname localhost:8001 http://www.google.com/

Molti tool usano libcurl internamente o wrappano il comando curl nei loro script d’installazione. E’ difficile talvolta modificare dunque i parametri passati a riga di comando.
In questo caso torna molto utile configurare una variabile d’ambiente che curl utilizzerà:

env ALL_PROXY=socks5h://localhost:8001 PROGRAM [OPTION]...

Se volete sovrascrivere le configurazioni dei proxy a livello di sistema, potreste avere bisogno di settare altre due variabili:

env http_proxy=socks5h://localhost:8001 HTTPS_PROXY=socks5h://localhost:8001 ALL_PROXY=socks5h://localhost:8001 PROGRAM [OPTION]...

Notare che http_proxy è minuscolo, gli altri maiuscoli.