2 votes

Curl et proxy système

Je fais actuellement transiter tout mon trafic par un tunnel ssh :

ssh -ND 8080 user@remote-machine

Et j'ai réglé le proxy socks5 du système (dans les paramètres du système sous la section réseau) sur 127.0.0.1:8080 . Tout fonctionne bien, Google Chrome et d'autres programmes utilisent le proxy socks comme prévu.

Le problème se pose lorsque j'essaie d'utiliser curl (soit dans le terminal, soit en l'utilisant dans PHP ). Voici ce que j'obtiens :

user@laptop:~$ curl -v google.com
* About to connect() to proxy 127.0.0.1 port 8080 (#0)
*   Trying 127.0.0.1... connected
> GET HTTP://google.com HTTP/1.1
> User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: google.com
> Accept: */*
> Proxy-Connection: Keep-Alive
> 
* Empty reply from server
* Connection #0 to host 127.0.0.1 left intact
curl: (52) Empty reply from server
* Closing connection #0

J'ai essayé de chercher sur Google mais je n'ai rien trouvé de pertinent. Alors comment faire pour que curl fonctionne avec le proxy du système (s'il est présent) ? Je voudrais être en mesure de configurer un alias qui fonctionnerait dans les deux cas (proxy et sans proxy) parce que je ne serai pas toujours prêt à utiliser le proxy.

2voto

user42467 Points 822

Pour le proxy HTTP, utilisez -x .

Ayez un $HOME/.curlrc avec

-x 127.0.0.1:8080

ou créer des alias en utilisant curl -x 127.0.0.1:8080 ... pour une utilisation par procuration.

Pour le proxy SOCKS, il faut regarder man curl dit :

   --socks5 <host[:port]>
          Use the specified SOCKS5 proxy - but resolve the host name locally. 
          If the port number is not specified, it is assumed at port 1080.

          This option overrides any previous use of -x, --proxy, as they are mutually exclusive.

Alors, utilisez curl --socks5 127.0.0.1:8080 c'est-à-dire. curl --socks5 $socks_proxy .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X