299

I want to download something with wget using a proxy:

HTTP Proxy: 127.0.0.1
Port: 8080

The proxy does not need username and password.

How can I do this?

Dharman
  • 30,962
  • 25
  • 85
  • 135
Hakim
  • 11,110
  • 14
  • 34
  • 37

13 Answers13

543

For all users of the system via the /etc/wgetrc or for the user only with the ~/.wgetrc file:

use_proxy=yes
http_proxy=127.0.0.1:8080
https_proxy=127.0.0.1:8080

or via -e options placed after the URL:

wget ... -e use_proxy=yes -e http_proxy=127.0.0.1:8080 ...
Azat Ibrakov
  • 9,998
  • 9
  • 38
  • 50
amaksr
  • 7,555
  • 2
  • 16
  • 17
  • 12
    My wget says it must be `use_proxy=on`, not `use_proxy=yes`. Works well otherwise. – barfuin Feb 26 '14 at 12:24
  • 6
    Checked. It works with wget -e =127.0.0.01:8080 ..., omitting the "use_proxy=yes" command parameter. Thanks! – alejandrob Sep 25 '15 at 15:45
  • 8
    @Thomas Jensen You are right the [wgetrc-manual](https://www.gnu.org/software/wget/manual/html_node/Wgetrc-Commands.html) states that it should be `on` or `off`, but actually trying a bogus command: `-e use_proxy=bnw` gives `wget: use_proxy: Invalid boolean ‘bnw’; use 'on' or 'off'.` while `=yes` gives no such error, so it seems to be inofficially allowed. – mxmlnkn Oct 23 '16 at 19:23
  • 2
    `http_proxy=http://:@127.0.01:8080` and likewise. otherwise you might have to feed these explicitly while calling the wget (refer - https://askubuntu.com/a/429943/350255) – parasrish May 09 '18 at 05:34
  • 1
    How do I turn it off? – Trect Jul 26 '18 at 07:43
  • 3
    @Tessaracter : `wget --no-proxy` – Patrice M. Oct 07 '19 at 22:12
104

Type in command line :

$ export http_proxy=http://proxy_host:proxy_port

for authenticated proxy,

$ export http_proxy=http://username:password@proxy_host:proxy_port

and then run

$ wget fileurl

for https, just use https_proxy instead of http_proxy. You could also put these lines in your ~/.bashrc file so that you don't need to execute this everytime.

shivshnkr
  • 1,435
  • 1
  • 13
  • 19
45

the following possible configs are located in /etc/wgetrc just uncomment and use...

# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/

# If you do not want to use proxy at all, set this to off.
#use_proxy = on
hovanessyan
  • 30,580
  • 6
  • 55
  • 83
22

wget uses environment variables somthing like this at command line can work:

export http_proxy=http://your_ip_proxy:port/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export dns_proxy=$http_proxy
export rsync_proxy=$http_proxy
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
juan_liga
  • 329
  • 2
  • 3
19

After trying many tutorials to configure my Ubuntu 16.04 LTS behind a authenticated proxy, it worked with these steps:

Edit /etc/wgetrc:

$ sudo nano /etc/wgetrc

Uncomment these lines:

#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/
#use_proxy = on

Change http://proxy.yoyodyne.com:18023/ to http://username:password@domain:port/

IMPORTANT: If it still doesn't work, check if your password has special characters, such as #, @, ... If this is the case, escape them (for example, replace passw@rd with passw%40rd).

jaume
  • 381
  • 1
  • 5
  • 11
Janderson Silva
  • 1,787
  • 17
  • 14
12

If you need to execute wget just once with the proxy, the easiest way is to do it with a one-liner like this:

http_proxy=http://username:password@proxy_host:proxy_port wget http://fileurl

or with an https target URL:

https_proxy=http://username:password@proxy_host:proxy_port wget https://fileurl
jplandrain
  • 2,278
  • 4
  • 24
  • 24
10

In Ubuntu 12.x, I added the following lines in $HOME/.wgetrc

http_proxy = http://uname:passwd@proxy.blah.com:8080

use_proxy = on

B E
  • 101
  • 1
  • 4
  • Why did you copy (with very slight modifications) the answer of @RahulDas that is nearly two years older than yours ? – jplandrain Aug 23 '23 at 12:34
6

In Debian Linux wget can be configured to use a proxy both via environment variables and via wgetrc. In both cases the variable names to be used for HTTP and HTTPS connections are

http_proxy=hostname_or_IP:portNumber
https_proxy=hostname_or_IP:portNumber

Note that the file /etc/wgetrc takes precedence over the environment variables, hence if your system has a proxy configured there and you try to use the environment variables, they would seem to have no effect!

a1an
  • 3,526
  • 5
  • 37
  • 57
5

In my ubuntu, following lines in $HOME/.wgetrc did the trick!

http_proxy = http://uname:passwd@proxy.blah.com:8080

use_proxy = on

Rahul Das
  • 115
  • 1
  • 6
5
export http_proxy=http://proxy_host:proxy_port/
export https_proxy=https://proxy_host:proxy_port/

or

export http_proxy=http://username:password@proxy_host:proxy_port/
export https_proxy=https://username:password@proxy_host:proxy_port/

As all others explained here, these environment variable helps to pass on proxies.

Note: But please not that if the password contains any special character then that needs to be configured as %<hex_value_of_special_char>.

Example: If the password is pass#123, need to be used as pass%23123 in above export commands.

rashok
  • 12,790
  • 16
  • 88
  • 100
5

Add below line(s) in file ~/.wgetrc or /etc/wgetrc (create the file if it is not there):

http_proxy = http://[Proxy_Server]:[port]
https_proxy = http://[Proxy_Server]:[port]
ftp_proxy = http://[Proxy_Server]:[port]

For more information, https://www.thegeekdiary.com/how-to-use-wget-to-download-file-via-proxy/

Vinoj John Hosan
  • 6,448
  • 2
  • 41
  • 37
2

In Windows - for Fiddler say - using environment variables:

set http_proxy=http://127.0.0.1:8888
set https_proxy=http://127.0.0.1:8888
fiat
  • 15,501
  • 9
  • 81
  • 103
2

start wget through socks5 proxy using tsocks:

  1. install tsocks: sudo apt install tsocks
  2. config tsocks

    # vi /etc/tsocks.conf
    
    server = 127.0.0.1
    server_type = 5
    server_port = 1080
    
  3. start: tsocks wget http://url_to_get
Gavin Gao
  • 309
  • 3
  • 6