Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

How do you configure proxy settings in the Ubuntu Server or Minimal (CLI) versions using the terminal?

share|improve this question

2 Answers 2

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:

  1. There several websites for encoding:
  2. 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.

share|improve this answer

System-wide proxies in CLI Ubuntu/Server must be set as environment variables.

  • Open the /etc/environment file with vi (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 with sudo. So separately configure them; create a file called 95proxies in /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.

share|improve this answer
    
I 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
    
Well, 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. –  Doc Mar 21 at 2:52
1  
In 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 3 at 15:53

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.