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:
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...
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
System-wide proxies in CLI Ubuntu/Server must be set as environment variables.
/etc/environment
file 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:
apt-get
,aptitude
, etc. will not obey the environment variables when used normally withsudo
. So separately configure them; create a file called95proxies
in/etc/apt/apt.conf.d/
, and include the following: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.
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:
bash
script from Stack OverflowIn a pinch, you can use
man url
to see which characters need to be encoded:And the octet codes are available on
man ascii
.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 ituse
source ~/.bash_profile
to apply the changes