web-dev-qa-db-fra.com

Comment forcer wget à utiliser un serveur proxy sans modifier les fichiers système?

J'aimerais connaître un équivalent de wget, ce qui me permet de définir le proxy tout en appelant la commande (comme wget --proxy=$http_proxy).

Des idées ?

20
fxm

Sans modifier vos fichiers système à /etc/wgetrc, vous pouvez créer un fichier dans votre répertoire personnel ~/.wgetrc. Cela vous permettra de modifier les paramètres wget localement au niveau utilisateur. Maintenant, écrivez ce qui suit à ~/.wgetrc pour utiliser wget derrière un serveur proxy:

use_proxy = on
http_proxy =  http://username:[email protected]:port/
https_proxy =  http://username:[email protected]:port/
ftp_proxy =  http://username:[email protected]:port/

Si vous ne disposez pas du nom d'utilisateur et du mot de passe du proxy, écrivez l'adresse proxy et le port partout, par exemple:

http_proxy =  http://proxy.server.address:port/

Cela devrait marcher. Je suppose que vous avez déjà des paramètres de proxy pour toutes les autres applications.

22
souravc

L'option -e vous permet de fournir des commandes comme dans wgetrc sur la ligne de commande afin que vous n'ayez pas besoin de modifier un fichier ...

wget -e use_proxy=yes -e http_proxy=$proxy http://askubuntu.com
32
jhs

Vous devez modifier le fichier wgetrc situé à /etc/wgetrc.

Utilisez votre éditeur de texte préféré, par exemple: nano /etc/wgetrc pour le modifier.

Recherchez la balise http_proxy et supprimez le # devant, ajoutez le serveur proxy après le = signe, c'est-à-dire:

http_proxy=http://foo.proxy:8080

Recherchez ensuite le tag use_proxy et supprimez le signe #, enregistrez le fichier.

wget utilisera alors le serveur proxy spécifié.

Si vous ne pouvez pas modifier la configuration du système avec votre utilisateur, vous pouvez copier la configuration actuelle dans un emplacement que vous pouvez modifier, par exemple: cp /etc/wgetrc ~ et utilisez l'option --config=~/wgetrc pour obliger wget à utiliser la configuration que vous avez modifiée à la place de la configuration globale.

3
Bruno Pereira

Option non mentionnée, mais qui devrait l'être: Utilisez des variables environnementales (selon votre distribution):

http_proxy=http://<proxy-server-ip>:<port>
export http_proxy

ou simplement

export http_proxy=http://<proxy-server-ip>:<port>

Pareil pour:

https_proxy=http://<proxy-server-ip>:<port>
ftp_proxy=http://<proxy-server-ip>:<port>

Vous pouvez inclure un nom d'utilisateur et un mot de passe. Si vous avez des caractères spéciaux dans votre mot de passe, veillez à inclure les '-s.

http_proxy='http://<username>:<password>@<proxy-server-ip>:<port>'

Exemples:

export http_proxy=http://172.16.1.100:8080
export https_proxy='http://johndoe:[email protected]:8080'
1
gjs

À partir de la ligne de commande uniquement, j'ai rencontré le succès avant la commande wget avec les informations http_proxy sans avoir besoin d'utiliser les variables d'environnement. Par exemple:

'$ http_proxy=<proxy-server-ip>:<port> wget http://www.example.com/'
1
user819727