Come posso forzare wget a utilizzare un server proxy senza modificare i file di sistema?


23

Mi piacerebbe sapere un equivalente di wget che mi permetta di impostare il proxy durante la chiamata del comando (come wget --proxy=$http_proxy).

Qualche idea ?

Risposte:


25

Senza modificare i file di sistema, /etc/wgetrcè possibile creare un file nella directory principale ~/.wgetrc. Ti consentirà di modificare le impostazioni di wget localmente a livello di utente. Ora scrivi quanto segue ~/.wgetrcper usare wget dietro un server proxy:

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/

Se non si dispone di nome utente e password proxy, basta scrivere l'indirizzo proxy e la porta ovunque come,

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

Questo dovrebbe funzionare. Presumo che tu abbia già le impostazioni proxy per tutte le altre applicazioni.


38

L' -eopzione ti consente di fornire comandi come in wgetrc nella riga di comando, quindi non è necessario modificare un file ...

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

Brillante. Hai risparmiato molti problemi, semplice com'è questa risposta.
Wildcard

Come lo spengo?
Tessaracter,

3

Devi modificare il wgetrcfile che si trova in /etc/wgetrc.

Usa il tuo editor di testo preferito, ovvero: nano /etc/wgetrcper modificarlo

Cerca il tag http_proxy e rimuovi il # davanti, aggiungi il server proxy dopo il segno = , cioè:

http_proxy=http://foo.proxy:8080

Quindi cerca il tag use_proxy e rimuovi il # davanti, salva il file.

wget utilizzerà quindi il server proxy specificato.

Se non è possibile modificare la configurazione del sistema con l'utente, è possibile copiare la configurazione corrente in un luogo in cui è possibile modificarla, ovvero: cp /etc/wgetrc ~e utilizzare l' --config=~/wgetrcopzione per forzare wget a utilizzare la configurazione modificata anziché la configurazione globale.


Sono a conoscenza di questa possibilità, ma non riesco a modificare i file di configurazione.
fxm,

Pensa che questa sia l'unica opzione che hai con wget.
Bruno Pereira,

Ecco perché sto cercando un equivalente di wget come indicato nel titolo.
fxm,

Ho modificato il titolo per riflettere che, in primo luogo, era chiaro cosa stavi cercando di fare.
Bruno Pereira,

Controlla l'ultimo paragrafo della risposta.
Bruno Pereira,

1

Opzione che non è menzionata, ma che dovrebbe essere menzionata: utilizzare le variabili ambientali (a seconda della distribuzione):

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

o semplicemente

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

Lo stesso per:

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

Puoi includere un nome utente e una password, se nella tua password sono presenti caratteri speciali, assicurati di includere '-s.

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

Esempi:

export http_proxy=http://172.16.1.100:8080
export https_proxy='http://johndoe:ABC!123@172.16.1.100:8080'

1

Solo dalla riga di comando ho riscontrato il successo che precede il wgetcomando con le http_proxyinformazioni senza la necessità di utilizzare le variabili di ambiente. Per esempio:

'$ http_proxy=<proxy-server-ip>:<port> wget http://www.example.com/'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.