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

3 Answers 3


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:

  • 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.

  • 1
    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, 2013 at 18:32
  • 1
    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. Mar 21, 2014 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 Apr 3, 2014 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, 2015 at 15:04
  • 1
    This 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, 2017 at 1:50

If you have an authenticating proxy, then the URLs will be different. Instead of:


You'll have:


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:


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.

                                 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:pass@my.proxy.server:8080

Persistent Proxy Settings: use vim ~/.bash_profile to open bash setup file, then put following lines inside it

export http_proxy=username:password@proxyhost.com:8080
export https_proxy=username:password@proxyhost.com:8081
export no_proxy=localhost,, *.my.lan

use source ~/.bash_profile to apply the changes

  • 1
    Thanks, I’ve corrected it. Jul 9, 2019 at 10:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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