Sign up ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

When I try to install a software using Ubuntu Software center I get:

Failed to download repository information
Check Your Internet connection

When I try to do a apt-get install something, I get:

407  Proxy Authentication Required

I use a proxy server that requires a user-name and a password. I have set my systems proxy manually, by plugging in the required numbers in the Networks proxy and applied it system wide. I guess the problem now is plugging in my user-name and password.

When I use INTERNET via Mozilla, it specifically asks me for my user-name and password.

share|improve this question

10 Answers 10

For your apt-get to work, you should edit your apt config file:

sudo -H gedit /etc/apt/apt.conf

And add Acquire::http::Proxy "http://username:password@proxyhost:port/";

The syntax shown above should be strictly followed.

This configuration may fail if your username or password has an '@' in it. You can also add proxy configuration for other protocols such as FTP.

Update: If your username or password has '@' in it you can replace it with %40 Example:If your password is @123 enter it as %40123.

For other characters see this Percent-encoding

share|improve this answer
I did exactly what you said but it still gives me the same error. It didn't solve the problem. – DeLiK Dec 4 '12 at 19:59

First set your proxy setting via Linux wizard use option manually and apply setting systemwide just like this wizard box.

Add your proxy environment. These are just example settings...
Open your command prompt login and edit the apt.conf file:

sudo vi /etc/apt/apt.conf

There are already 4 lines of code starting with Acquire key word, edit it like this:

Acquire::http::Proxy "http://username:password@proxyhost:port/";
Acquire::https::Proxy "https://username:password@proxyhost:port/";
Acquire::ftp::Proxy "ftp://username:password@proxyhost:port/";
Acquire::http::Proxy "http://username:password@proxyhost:port/";

If your Password contains special characters like @,$,! (e.g. Password: P@ssword) then replace the special characters by their hex code equivalents with % prefix like this:

Acquire::http::Proxy "http://username:p%40ssword@proxyhost:port/"; 


share|improve this answer

I think this tutorial should help you.

Click on Network tab select Manual Proxy Configuration option and enter your proxy server,port details.If you have username,password click on Authentication to enter these details click on ok


To invoke it for all programs launched in a shell I would suggest you either add it to your /etc/bash.bashrc using gksudo gedit /etc/bash.bashrc to apply it system-wide for all bash sessions or to your user-space ~/.bashrc.

As far as Synaptic goes, in the Preferences under the Network tab you seem to be able to set authentification for your proxies. This appears to be specific to Synaptic, though.

share|improve this answer
I use Ubuntu 11, can u help me in reaching synaptic – user38507 Dec 19 '11 at 15:11
also where exactly in thie bash.bashrc does one need to plug in the username and password – user38507 Dec 19 '11 at 15:14
export http_proxy=http://username:password@proxyhost:port/ – bodhi.zazen Dec 19 '11 at 16:38
i gave the command sudo echo "export http_proxy=swastik:ramdayal@"; >> /etc/bash.bashrc even now i get the same error – user38507 Dec 20 '11 at 4:29

One nice alternative is to use Synaptic Package ManagerInstall Synaptic, where you can specify system independent proxy settings and also store username and password.

Proxy Settings

However, this won't change proxy for Software Center.

share|improve this answer

If you're behind an enterprise proxy that's running NTLM authentication, you could use CNTLM:

$ sudo apt-get install cntlm
$ sudo vi /etc/cntlm.conf

Change the default settings (domain, username, password and proxy). Then restart the service:

$ sudo /etc/init.d/cntlm restart

You can now use localhost:3128 (default CNTLM port) as the system-wide proxy for Ubuntu.

Check for docs.

share|improve this answer
In order to get sudo apt-get install cntlm to work you first need to go through that proxy. – zespri May 13 '14 at 23:42

If your user name is separated by space then use:

export http_proxy='http://Pankaj Kumar Pandit:ABCD@'

If your user name is not separated by space then use:

export http_proxy=http://Pankaj_Kumar_Pandit:ABCD@

The difference is the addition of opening and closing '.

share|improve this answer

In the latest versions of Ubuntu, you can use System Settings > Network > Network Proxy, and when you click "apply system wide" it modifies proxy settings in different places, at least including the /etc/apt/sources.list file, HOWEVER...

It does not have any mechanism to prompt for authentication. No idea why no one has made that part of it yet, but because of this, if you need authentication, you need to put your password and username there too in this format:


If your password or user name has any special characters in it, including @ or # or ! or whatever, you probably are going to have to use the HTML-ized character code for any of those special characters. See this page for that:

share|improve this answer

I have made a python script to set the proxy settings in Ubuntu

Assume the following setting, you need to replace at relevant places

  • proxy_address
  • proxy_port 3128
  • proxy_username king
  • proxy_password queen

I have made a video which takes you through all the steps:

Steps are Detailed here:

  • First click on Dash
  • In Search Box Enter "Proxy" (Without Quotes)
  • Click on "Network" under Applications
  • Select "Network Proxy"
  • Select Manual
  • Enter the proxy address and proxy port
  • Apply. Enter your system password to confirm

Download the script


Let’s say you have saved the in the Downloads folder

  • Open terminal Type
  • cd ~/Downloads

General Command:
sudo python proxy_address proxy_port proxy_username proxy_password
For our example

  • sudo python 3128 king queen

In case of simple proxy Without authentication the command is:

  • sudo python 3128

In case you have python 3 and above run using python2.7 so the commands will look like

  • sudo python2.7 3128
  • sudo python2.7 3128 king queen
share|improve this answer

I was also facing the same problem. Then i came to know about CNTLM . Now it works really well . See how to configure CNTLM here.

share|improve this answer
Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. – Oyibo Jan 13 '13 at 10:44

You can also try the following commands.

For http connection - export:


For https connection - export:


And likewise for ftp and other connections.

share|improve this answer

protected by Community May 6 at 15:17

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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