Je veux télécharger quelque chose avec wget
en utilisant un proxy:
HTTP Proxy: 127.0.0.1
Port: 8080
Le proxy n'a pas besoin de nom d'utilisateur ni de mot de passe.
Comment puis-je faire ceci? J'ai consulté de nombreux sites et de nombreuses suggestions, mais rien ne fonctionnait pour moi ...
Pour tous les utilisateurs du système via le /etc/wgetrc
ou pour l'utilisateur uniquement avec le fichier ~/.wgetrc
:
use_proxy=yes
http_proxy=127.0.0.1:8080
https_proxy=127.0.0.1:8080
ou via les options -e
placées après l'URL:
wget ... -e use_proxy=yes -e http_proxy=127.0.0.1:8080 ...
Tapez en ligne de commande:
$ export http_proxy=http://proxy_Host:proxy_port
pour un proxy authentifié,
$ export http_proxy=http://username:password@proxy_Host:proxy_port
puis courir
$ wget fileurl
pour https, utilisez simplement https_proxy au lieu de http_proxy. Vous pouvez également mettre ces lignes dans votre fichier ~/.bashrc afin que vous n'ayez pas besoin de l'exécuter à chaque fois.
les configurations possibles suivantes se trouvent dans /etc/wgetrc
décommentez et utilisez ...
# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/
# If you do not want to use proxy at all, set this to off.
#use_proxy = on
wget utilise des variables d'environnement, ce qui peut fonctionner en ligne de commande:
export http_proxy=http://your_ip_proxy:port/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export dns_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
Après avoir essayé de nombreux tutoriels pour configurer mon Ubuntu 16.04 LTS derrière un proxy authentifié, les étapes suivantes ont été suivies:
Éditer /etc/wgetrc
:
$ Sudo nano /etc/wgetrc
Décommentez ces lignes:
#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/
#use_proxy = on
Remplacez http://proxy.yoyodyne.com:18023/
par http://username:password@domain:port/
IMPORTANT: Si cela ne fonctionne toujours pas, vérifiez si votre mot de passe contient des caractères spéciaux, tels que
#
,@
, ... Si c'est le cas, échappez-les (par exemple, remplacezpassw@rd
avecpassw%40rd
).
Dans Ubuntu 12.x, j'ai ajouté les lignes suivantes dans $ HOME/.wgetrc
http_proxy = http: // uname: [email protected]: 808
use_proxy = on
Dans mon Ubuntu, les lignes suivantes dans $ HOME/.wgetrc ont fait l'affaire!
http_proxy = http: // uname: [email protected]: 808
use_proxy = on
Dans Debian Linux, wget peut être configuré pour utiliser un proxy à la fois via des variables d’environnement et via wgetrc. Dans les deux cas, les noms de variable à utiliser pour les connexions HTTP et HTTPS sont
http_proxy=hostname_or_IP:portNumber
https_proxy=hostname_or_IP:portNumber
Notez que le fichier/etc/wgetrc a la priorité sur les variables d’environnement. Par conséquent, si votre système a un proxy configuré à cet endroit et que vous essayez d’utiliser les variables d’environnement, elles sembleraient n’avoir aucun effet!
export http_proxy=http://proxy_Host:proxy_port/
export https_proxy=https://proxy_Host:proxy_port/
ou
export http_proxy=http://username:password@proxy_Host:proxy_port/
export https_proxy=https://username:password@proxy_Host:proxy_port/
Comme tous les autres expliqués ici, ces variables d’environnement permettent de transmettre des proxy.
Remarque: Mais s'il vous plaît, ne spécifiez pas que si le mot de passe contient un caractère spécial, vous devez le configurer en tant que %<hex_value_of_special_char>
.
Exemple: Si le mot de passe est pass#123
, doit être utilisé comme pass%23123
dans les commandes d'exportation ci-dessus.
Dans Windows - pour Fiddler par exemple - en utilisant des variables d’environnement:
set http_proxy=http://127.0.0.1:8888
set https_proxy=http://127.0.0.1:8888
Si vous devez exécuter wget une seule fois avec le proxy, le moyen le plus simple est de le faire avec une ligne comme celle-ci:
http_proxy=http://username:password@proxy_Host:proxy_port wget http://fileurl
ou avec une URL https cible:
https_proxy=http://username:password@proxy_Host:proxy_port wget https://fileurl