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.