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.