Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

how can I set apt-get to work behind proxy?

share|improve this question
up vote 8 down vote accepted
http_proxy="http://host:port" apt-get something

should work.

If you require authentication, try

http_proxy="http://user:pass@host:port" apt-get something

And if you want this to be permenant, you should probably set the http_proxy (and ftp_proxy?) variables in your ~/.bashrc so that all of your proxy-capable applications will work in the future, e.g. 'wget'.

share|improve this answer
one more thing to note is that if the password contains '@' then replace it with '%40' (without quotes),else it will not work – dotslash Nov 6 '11 at 9:16

in /etc/apt/apt.conf, add the line:



(Note: completely stolen from this answer to my similar question on SF. Cred to Grizzly)

share|improve this answer
The line needs to end with a ; – Verma Dec 19 '13 at 10:57
My filename was different but this is what worked for me /etc/apt/apt.conf.d/01proxy – Jackie Dec 30 '15 at 15:57

A proxy is specified by setting the http_proxy, ftp_proxy and all_proxy environment variables, either locally (e.g. in ~/.bashrc) or globally (e.g. in /etc/bash.bashrc). These settings are honored by virtually all net-software packages (like apt-get, wget, curl etc.):

# HTTP proxy without authentification
export http_proxy="http://host:port"
# HTTP proxy with authentification
export http_proxy="http://user:pass@host:port"

However, setting them this way does not help when running sudo apt-get ... - and that is due to this line in /etc/sudoers:

Defaults env_reset

This line resets all environment variables when using sudo, for security reasons. In order to keep the values of http_proxy etc. in a sudo invocation, you can specify exceptions to env_reset via env_keep:

# Exception specific to the command apt-get
Defaults!/usr/bin/apt-get env_keep="http_proxy https_proxy ftp_proxy"
# Exception specific to the user joe
Defaults:joe env_keep="http_proxy https_proxy ftp_proxy"

This way, you get apt-get to honor the global setting for http_proxy, instead of duplicating the setting for apt-get in some arcane apt-specific config file.

share|improve this answer
This is the real answer in my opinion, because you will all the time use sudo apt-get ... for anything. So without this entry in /etc/sudoers, it will not work. – mliebelt Dec 24 '13 at 8:42
This env_reset line is /etc/sudoers is really important! – Ari Sep 8 '14 at 19:19
@Ari: Yes it is; that is why I showed how to disable it specifically for apt-get and specifically for the variables necessary, instead of saying "just remove the line". – DevSolar Sep 9 '14 at 7:32
@DevSolar: yes, and plus 1 for that! – Ari Sep 9 '14 at 17:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .