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 ?

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:password@proxy.server.address:port/
https_proxy =  http://username:password@proxy.server.address:port/
ftp_proxy =  http://username:password@proxy.server.address: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.


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

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.


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:ABC!123@172.16.1.100:8080'

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/'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.