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

23

Je voudrais connaître un équivalent de wget me permettant de définir le proxy lors de l'appel de la commande (comme wget --proxy=$http_proxy).

Des idées ?

fxm
la source

Réponses:

25

Sans modifier vos fichiers système, /etc/wgetrcvous pouvez créer un fichier dans votre répertoire personnel ~/.wgetrc. Il vous permettra de modifier les paramètres wget localement au niveau de l'utilisateur. Écrivez maintenant ce qui suit à ~/.wgetrcpour 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 n'avez pas de nom d'utilisateur et de mot de passe proxy, écrivez simplement l'adresse proxy et le port partout comme,

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

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

souravc
la source
38

L' -eoption 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
jhs
la source
Brillant. Vous avez sauvé beaucoup d'ennuis, aussi simple que soit cette réponse.
Wildcard le
Comment puis-je l'éteindre?
Tessaracter
3

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

Utilisez votre éditeur de texte préféré, c'est- nano /etc/wgetrcà- dire: 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 la balise use_proxy et supprimez le # devant, enregistrez le fichier.

wget sera alors en utilisant 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 endroit où vous pouvez la modifier, c'est-à-dire: cp /etc/wgetrc ~et utilisez l' --config=~/wgetrcoption pour forcer wget à utiliser la configuration que vous avez modifiée au lieu de la configuration globale.

Bruno Pereira
la source
Je suis conscient de cette possibilité, mais je ne peux pas modifier les fichiers de configuration.
fxm
Pensez que c'est la seule option que vous avez avec wget.
Bruno Pereira
C'est pourquoi je recherche un équivalent de wget comme je l'ai indiqué dans le titre.
fxm
J'ai modifié le titre pour refléter cela, il était clair en premier lieu ce que vous essayiez de faire.
Bruno Pereira
Vérifiez le dernier paragraphe de la réponse.
Bruno Pereira
1

Option qui n'est pas mentionnée, mais qui doit être mentionnée: Utilisez des variables d'environnement (en fonction de 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, assurez-vous d'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'
gjs
la source
1

De la ligne de commande seulement, j'ai trouvé le succès précédant la wgetcommande avec les http_proxyinformations sans avoir besoin d'utiliser les variables d'environnement. Par exemple:

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