How To Use Proxy Server To Access Internet at Shell Prompt With http_proxy Variable

by on May 9, 2008 · 36 comments· LAST UPDATED May 9, 2008

in , ,

Q. I'm behind a squid proxy server. How do I access internet via proxy server when I use wget, lynx and other utilities from a shell prompt?

A. Linux / UNIX has environment variable called http_proxy. It allows you to connect text based session / application via the proxy server. All you need is proxy server IP and port values. This variable is almost used by all utilities such as elinks, lynx, wget, curl and others.

Set http_proxy shell variable

Type the following command to set proxy server:

$ export http_proxy=http://server-ip:port/
$ export http_proxy=http://127.0.0.1:3128/
$ export http_proxy=http://proxy-server.mycorp.com:3128/

How do I setup proxy variable for all users?

To setup the proxy environment variable as a global variable, open /etc/profile file:
# vi /etc/profile
Add the following information:
export http_proxy=http://proxy-server.mycorp.com:3128/
Save and close the file.

How do I use password protected proxy server?

You can simply use wget as follows:
$ wget --proxy-user=USERNAME --proxy-password=PASSWORD http://path.to.domain.com/some.html
Lynx has following syntax:
$ lynx -pauth=USER:PASSWORD http://domain.com/path/html.file
Curl has following syntax:
$ curl --proxy-user user:password http://url.com/

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 36 comments… read them below or add one }

1 Raphael May 9, 2008 at 4:07 pm

For password protected proxies, I know it sometimes work directly included in http_proxy variable (ok it’s not so secure but it can make the work easier) :

$ export http_proxy=http://user:password@server-ip:port/

Reply

2 Ajey February 8, 2011 at 1:03 pm

Great work. This worked for me. Thanks.

Reply

3 RAFEE October 17, 2012 at 6:07 am

thank you , It is working fine :)

Reply

4 Slavko May 9, 2008 at 4:52 pm

It is really correct?

export export http_proxy=http://proxy-server.mycorp.com:3128/

Reply

5 Houssem Eddinn Kaabachi March 29, 2012 at 10:50 am

You have typed one more “export”. So you have to type only this
export http_proxy=http://proxy-server.mycorp.com:3128/

Reply

6 nixCraft May 9, 2008 at 5:45 pm

Slavko,

It was a typo. The faq has been updated.

Reply

7 Pravin September 18, 2008 at 10:10 am

Hi

I tried this, but still, I cannot ping google or any other site from within the shell.. it says ‘destination host unreachable’..

I’m using Redhat Enterprise 2.4..

Any idea what might be going wrong?

Thanks
Pravin

Reply

8 kiran khairnar December 27, 2010 at 1:26 pm

Until and unless you put the DNS server it won’t ping

Reply

9 Breno April 5, 2009 at 7:23 pm

Very Good Man!
Thanks!

Reply

10 la_89 June 5, 2009 at 9:00 pm

above is good for for text based but for a simple linux user using firefox how can b a proxy server can b used like fedora core 8

Reply

11 Kyaw Soe Htet June 2, 2011 at 9:54 am

Hey how do I use a proxy server .My service provider blocked the proxy server websites.

Reply

12 ishtiyaq October 4, 2011 at 11:59 am

proxy setting syntax:
export http_proxy=http://:@:/
export ftp_proxy=http://:@:/

it works for ishtiyaq :)

Reply

13 ishtiyaq October 4, 2011 at 12:00 pm

export http_proxy=http://user:pasword@proxy-server.mycorp.com:port/
export ftp_proxy=http://user:pasword@proxy-server.mycorp.com:port/

Reply

14 El Lobo October 26, 2011 at 1:45 pm

Is there support for excluding sites or a regex from using the proxy?

It seems that there is options for some commands, but is there a centralized option?

I.E. something like:

export no_http_proxy=*.ibm.com,10.0.0.0\24,…

Reply

15 arun March 3, 2012 at 7:47 am

wanna no can i download from a server which has a block on downloads by using linux

Reply

16 thisara March 6, 2012 at 4:02 pm

Hi My case is little different because my user name is domain\username

export http_proxy=http://domain\user:pasword@proxy-server.mycorp.com:port/
i try above way but didn’t work it.Can any one help me about

Reply

17 printer305 March 28, 2012 at 4:57 am

use:
export http_proxy=”http://user:password@proxy-ip:port”

I think the previous people forgot to put the quotes.

And another question, what if I have a proxy server enabled using the above command and want to remove it? What command do I have to use?

Reply

18 Sivaprakash April 5, 2012 at 10:43 am

Hey People,

I got a doubt. My password is have a special character ‘@’. Due to this the character before the ‘@’ in my password are ignored. Can anyone include ‘@’ in your password and let me know if that works.

Thanks,
SP

Reply

19 srinivas April 29, 2013 at 2:00 pm

Hi SP,

I am also facing same problem .If you are out of this problem .
Can you tell me the way to work it out.

Thanks
srinu

Reply

20 Tim July 18, 2013 at 1:01 am

try substituting ‘%40′ for ‘@’ in your password.

Reply

21 droid.manic April 17, 2012 at 6:10 am

If you have a domain and you have a \ you have to escape it since \ it self is an escape char. You should do this:
export http_proxy=http://domain\\user:pasword@proxy-server.mycorp.com:port/

Reply

22 Sachin May 4, 2012 at 9:11 am

hi,
seems like for proxy
Only below setting is working

export http_proxy=

Reply

23 Fernando August 3, 2012 at 3:03 pm

Hello!
I need to configure complete internet access behind a proxy.
I can access 80 port, but i need 443 and all ports for Skype for example.
Thanks for anyone who can help me.

Thanks

Reply

24 Vincent September 5, 2012 at 5:57 pm

you can use ‘https_proxy’ with the same settings if you need proxy over https
you can also use ‘ftp_proxy’ if needed, as well

Reply

25 titus January 18, 2013 at 9:29 am

Hi guys,How can i remove the proxy from elinks?i was accessing a server that needed validation and that worked fine,then when i went to a no proxy server,i couldint access interned due to earlier proxy setting,please help me with the command or file to remove the proxy settings.

Reply

26 Ambot Lang March 4, 2013 at 10:33 pm

I just curious and my password doesn’t work because it has a character ‘@’ it generates error says unable to resolve host address especially using wget. How do i overcome it?Thanks

Reply

27 bartender March 5, 2013 at 10:25 am

cd /etc
sudo gedit bash.bashrc

once gedit opens the file in text form,goto the end and type the following,edit if already exists:

export http_proxy=http://:@:8080/
export ftp_proxy=http://:@:/

example: lets say your username is simpson , password is bartrocks, the proxy server for your connection is http://10.1.1.32 ,port address is 8080, then to set up http proxy you have to write:

export http_proxy=http://simpson:bartrocks@10.1.1.32:8080/

Then Save and exit as you do for text files.Close and reopen the terminal and now you can use tools like wget to download web-pages from terminal :)

Reply

28 bartender March 5, 2013 at 10:26 am

cd /etc
sudo gedit bash.bashrc

once gedit opens the file in text form,goto the end and type the following,edit if already exists:

export http_proxy=http://username:password@proxyserveraddress:8080/
export ftp_proxy=http://username:password@serveraddress:port/

example: lets say your username is simpson , password is bartrocks, the proxy server for your connection is http://10.1.1.32 ,port address is 8080, then to set up http proxy you have to write:

export http_proxy=http://simpson:bartrocks@10.1.1.32:8080/

Then Save and exit as you do for text files.Close and reopen the terminal and now you can use tools like wget to download web-pages from terminal :)

Reply

29 Nobody!! May 20, 2013 at 5:32 am

I’m a Student.. I’ve Lab Exams comming up.. Programs are too Lengthy..
I’m Slow with Keyboard..

Do the above Export Command need SuperUser Privilege??

Reply

30 nixCraft May 20, 2013 at 6:50 am

Noop.

HTH.

Reply

31 abii June 20, 2013 at 5:21 am

export http_proxy=http://username:password@14@proxyserver.fid.cb:8080/

I have “@” in my password, how to enter the password in this scenario? in double quotes?

Reply

32 srinivas July 10, 2013 at 2:33 pm

you can use the above command ,if you want you can use double quotes.

problem will come when you use ! or $ . then u have use \ like: password\!test

in this case don’t use double quotes

Reply

33 Bilal August 6, 2013 at 1:57 pm

I was trying to set permanently environment variable for proxy in /etc/profile as mentioned in guide. But it wont work even on reboot.
I explored and figured out that users ~/.bashrc file is used for permanent save environment variable.

Reply

34 Prasoon September 16, 2013 at 7:08 am

How will you access the https sites from command line, as you only configured it for http as of now…is there a way out..

Regards,
Prasoon

Reply

35 Rahul R Upadhye October 14, 2013 at 9:32 am

@Tim

Thanks you so much :)

%40 works instead @ in the password….

Reply

36 mklim November 26, 2013 at 3:25 am

Hi,

My shell script

#!bin/bash

export http_proxy=”http://example123.edu.my:80″

Not working…any idea?

Becoz it can execute but no changes made..:-(

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: