How do you configure proxy settings in the Ubuntu Server or Minimal (CLI) versions using the terminal?
3 Answers
System-wide proxies in CLI Ubuntu/Server must be set as environment variables.
- Open the
/etc/environmentfile withvi(or your favorite editor). This file stores the system-wide variables initialized upon boot. Add the following lines, modifying appropriately. You must duplicate in both upper-case and lower-case because (unfortunately) some programs only look for one or the other:
http_proxy="http://myproxy.server.com:8080/" https_proxy="http://myproxy.server.com:8080/" ftp_proxy="http://myproxy.server.com:8080/" no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" HTTP_PROXY="http://myproxy.server.com:8080/" HTTPS_PROXY="http://myproxy.server.com:8080/" FTP_PROXY="http://myproxy.server.com:8080/" NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
apt-get,aptitude, etc. will not obey the environment variables when used normally withsudo. So separately configure them; create a file called95proxiesin/etc/apt/apt.conf.d/, and include the following:Acquire::http::proxy "http://myproxy.server.com:8080/"; Acquire::ftp::proxy "ftp://myproxy.server.com:8080/"; Acquire::https::proxy "https://myproxy.server.com:8080/";
Finally, logout and reboot to make sure the changes take effect.
Sources: 1, 2. See 1 in particular for additional help, including a script to quickly turn on/off the proxies.
-
1I need help on this. I've been trying this on a virtual Ubuntu Server 12.04 for a while now and it's not working. I have it working with a virtual Ubuntu 12.04 (non server). But I used the GUI to apply global settings. I've tried with quotes as the lower link suggests, and it didn't help. If I'm entering an IP address instead of a domain.com name does the formatting change? I've tried several combinations of things. – Frantumn Jun 14 '13 at 18:32
-
are you sure https_proxy="http ? – BBK Dec 24 '13 at 15:31
-
1Well, this isn't a great answer in my view because the (incorrect) proxy info I gave at install time is not located in /etc/environment. – James T Snell Mar 21 '14 at 02:52
-
1In my case, Ubuntu 12.04, it was not necessary to logout and reboot to make sure the changes take effect. I execute: sudo service network-manager restart – Daniel Mora Apr 03 '14 at 15:53
-
2@BBK even when using https, you may still have to connect to the proxy via http, which basically enables the proxy server to eavesdrop on your presumably safe connection. – s3lph Jan 29 '15 at 15:04
-
@Doc It's almost definitely in `/etc/apt/apt.conf` – jfa Jul 09 '15 at 19:37
-
Note that you have are using an https url in the Acquire line for https. Don't you mean to use http://myproxy.server.com:8080/? – Dave Moten Nov 24 '15 at 00:50
-
Note that I had some problems with quoting the paths. I removed the quotes and everything worked fine! – boast Jan 22 '16 at 14:15
-
also watch out for ```/etc/profile.d.``` These settings could be in that folder as well. – boatcoder Feb 04 '16 at 21:30
-
1This does work on archlinux ,even msys2(Windows). But not work on ubuntu, I keep getting `Proxy request sent, awaiting response... No data received` . – Mithril Jul 19 '17 at 01:50
-
1do we still need to configure url in the browser to access internet through proxy ?? ( eq. inside firefox settings > Configure proxies to access internet ) – pkm Aug 05 '17 at 10:34
If you have an authenticating proxy, then the URLs will be different. Instead of:
"http://myproxy.server.com:8080/"
You'll have:
"http://user_name:[email protected]:8080/"
Note that these are still URLs, so passwords (and possibly usernames) will have to be URL encoded.
For example, a username of muru and a password of )qv3TB3LBm7EkP} would look like:
"http://muru:)qv3TB3LBm7EkP%[email protected]:8080/"
This can be done in various ways:
- There several websites for encoding:
- Programmatic:
In a pinch, you can use man url to see which characters need to be encoded:
An escaped octet is encoded as a character triplet,
consisting of the percent character "%" followed by
the two hexadecimal digits representing the octet code...
And the octet codes are available on man ascii.
Proxy Environment Variables:http_proxy: Proxy server for HTTP Traffic
https_proxy: Proxy server for HTTPS traffic
ftp_proxy: Proxy server for FTP traffic
no_proxy: Patterns for IP addresses or domain names that shouldn’t use the proxy
The value for every proxy setting, except for no_proxy, uses the same template.
proxy_http=username:password@proxy-host:port
Temporary setting proxy:
export HTTP_PROXY=user:[email protected]:8080
Persistent Proxy Settings:
use vim ~/.bash_profile to open bash setup file, then put following lines inside it
export http_proxy=username:[email protected]:8080
export https_proxy=username:[email protected]:8081
export no_proxy=localhost, 127.0.0.1, *.my.lan
use source ~/.bash_profile to apply the changes
- 280
- 2
- 5