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?
For all users of the system via the
/etc/wgetrc or for the user only with the
use_proxy=yes http_proxy=127.0.0.1:8080 https_proxy=127.0.0.1:8080
-e options placed after the URL:
wget ... -e use_proxy=yes -e http_proxy=127.0.0.1:8080 ...
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.
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
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"
After trying many tutorials to configure my Ubuntu 16.04 LTS behind a authenticated proxy, it worked with these steps:
$ 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
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
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
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
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!
export http_proxy=http://proxy_host:proxy_port/ export https_proxy=https://proxy_host:proxy_port/
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
Example: If the password is
pass#123, need to be used as
pass%23123 in above export commands.
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
start wget through socks5 proxy using tsocks:
- install tsocks:
sudo apt install tsocks
# vi /etc/tsocks.conf server = 127.0.0.1 server_type = 5 server_port = 1080
tsocks wget http://url_to_get
Not the answer you’re looking for? Browse other questions tagged linux proxy wget or ask your own question.
Leave an answer