Wie kann ich wget zwingen, einen Proxy-Server zu verwenden, ohne die Systemdateien zu ändern?

22

Ich möchte eine Entsprechung zu wget kennen, die es mir ermöglicht, den Proxy beim Aufrufen des Befehls (like wget --proxy=$http_proxy) festzulegen .

Irgendwelche Ideen ?

fxm
quelle

Antworten:

25

Ohne die Systemdateien zu ändern, können /etc/wgetrcSie eine Datei in Ihrem Home-Verzeichnis erstellen ~/.wgetrc. Hiermit können Sie die Wget-Einstellungen lokal auf Benutzerebene ändern. Schreiben Sie nun Folgendes an ~/.wgetrc, um wget hinter einem Proxy-Server zu verwenden:

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

Wenn Sie keinen Proxy-Benutzernamen und kein Passwort haben, schreiben Sie einfach die Proxy-Adresse und den Port wie folgt überall hin:

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

Das sollte funktionieren. Ich gehe davon aus, dass Sie bereits Proxy-Einstellungen für alle anderen Anwendungen haben.

souravc
quelle
38

Mit dieser -eOption können Sie Befehle wie in wgetrc in der Befehlszeile bereitstellen, sodass Sie keine Datei ändern müssen ...

wget -e use_proxy=yes -e http_proxy=$proxy http://askubuntu.com
jhs
quelle
Brillant. Sie haben eine Menge Ärger gespart, so einfach diese Antwort ist.
Wildcard
Wie schalte ich es aus?
Tessaracter
3

Sie müssen die wgetrcDatei unter bearbeiten /etc/wgetrc.

Verwenden Sie Ihren bevorzugten Texteditor, nano /etc/wgetrcum ihn zu bearbeiten

Suchen Sie nach dem Tag http_proxy und entfernen Sie das # davor. Fügen Sie den Proxyserver nach dem Zeichen = hinzu , dh:

http_proxy=http://foo.proxy:8080

Suchen Sie dann nach dem Tag use_proxy und entfernen Sie das # davor. Speichern Sie die Datei.

wget wird dann den angegebenen Proxy-Server verwenden.

Wenn Sie die Systemkonfiguration mit Ihrem Benutzer nicht ändern können, können Sie die aktuelle Konfiguration an einen Ort kopieren, an dem Sie sie bearbeiten können, dh: cp /etc/wgetrc ~und die --config=~/wgetrcOption verwenden, um wget zu zwingen, die geänderte Konfiguration anstelle der globalen Konfiguration zu verwenden.

Bruno Pereira
quelle
Ich kenne diese Möglichkeit, kann aber keine Konfigurationsdateien ändern.
FXM
Denken Sie, dies ist die einzige Option, die Sie mit wget haben.
Bruno Pereira
Deshalb suche ich ein Äquivalent von wget, wie ich im Titel angegeben habe.
18.
Ich habe den Titel bearbeitet, um das wiederzugeben, es war an erster Stelle klar, was Sie versuchten zu tun.
Bruno Pereira
Überprüfen Sie den letzten Absatz der Antwort.
Bruno Pereira
1

Option, die nicht erwähnt wird, aber erwähnt werden sollte: Umgebungsvariablen verwenden (abhängig von Ihrer Distribution):

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

oder einfach

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

Gleiches für:

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

Sie können einen Benutzernamen und ein Passwort eingeben. Wenn Sie Sonderzeichen in Ihrem Passwort haben, achten Sie darauf, die '-s einzuschließen.

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

Beispiele:

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

Nur von der Befehlszeile aus habe ich Erfolg gehabt, als ich dem wgetBefehl die http_proxyInformationen vorangestellt habe, ohne die Umgebungsvariablen verwenden zu müssen. Beispielsweise:

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