Como forço o wget a usar um servidor proxy sem modificar os arquivos do sistema?

23

Eu gostaria de saber um equivalente ao wget, permitindo que eu defina o proxy ao chamar o comando (como wget --proxy=$http_proxy).

Alguma ideia ?

fxm
fonte

Respostas:

25

Sem modificar os arquivos do sistema, /etc/wgetrcvocê poderá criar um arquivo no diretório inicial ~/.wgetrc. Ele permitirá que você modifique as configurações do wget localmente no nível do usuário. Agora escreva o seguinte em ~/.wgetrcpara usar o wget atrás de um servidor proxy:

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

Se você não tiver nome de usuário e senha de proxy, basta escrever o endereço e a porta do proxy em todos os lugares,

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

Isso deve funcionar. Suponho que você já tenha configurações de proxy para todos os outros aplicativos.

souravc
fonte
38

A -eopção permite que você forneça comandos como no wgetrc na linha de comando para que você não precise alterar um arquivo ...

wget -e use_proxy=yes -e http_proxy=$proxy http://askubuntu.com
jhs
fonte
Brilhante. Você salvou muitos problemas, por mais simples que seja essa resposta.
Curinga
Como faço para desligá-lo?
Tessaracter
3

Você precisa editar o wgetrcarquivo localizado em /etc/wgetrc.

Use seu editor de texto favorito, ou seja: nano /etc/wgetrcpara editá-lo

Procure a tag http_proxy e remova o # na frente dela, adicione o servidor proxy após o sinal = , ou seja:

http_proxy=http://foo.proxy:8080

Em seguida, procure a tag use_proxy e remova o # na frente dela, salve o arquivo.

wget usará o servidor proxy especificado.

Se você não pode alterar a configuração do sistema com o usuário, pode copiar a configuração atual para um local onde pode editá-la, ou seja:: cp /etc/wgetrc ~e use a --config=~/wgetrcopção para forçar o wget a usar a configuração que você alterou em vez da configuração global.

Bruno Pereira
fonte
Estou ciente dessa possibilidade, mas não consigo modificar os arquivos de configuração.
Fxm 17/09/2013
Pense que esta é a única opção que você tem com o wget.
Bruno Pereira
É por isso que estou procurando um equivalente ao wget, como indiquei no título.
Fxm 18/09/2013
Eu editei o título para refletir isso, ficou claro em primeiro lugar o que você estava tentando fazer.
Bruno Pereira
Verifique o último parágrafo da resposta.
Bruno Pereira
1

Opção que não é mencionada, mas deve ser mencionada: Use variáveis ​​ambientais (dependendo da sua distribuição):

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

ou simplesmente

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

Mesmo para:

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

Você pode incluir um nome de usuário e senha, se tiver caracteres especiais em sua senha, certifique-se de incluir os '-s.

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

Exemplos:

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

Somente na linha de comando, obtive sucesso precedendo o wgetcomando com as http_proxyinformações sem a necessidade de usar as variáveis ​​de ambiente. Por exemplo:

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