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/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="" https_proxy="" ftp_proxy="" no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" HTTP_PROXY="" HTTPS_PROXY="" FTP_PROXY="" 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 ""; Acquire::ftp::proxy "ftp://myproxy.server.com:8080/"; Acquire::https::proxy ""; 

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.

11

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:

"):8080/" 

This can be done in various ways:

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

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

export http_proxy=username::8080 export https_proxy=username::8081 export no_proxy=localhost, 127.0.0.1, *.my.lan 

use source ~/.bash_profile to apply the changes

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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