407 Proxy Authentication Required

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

  • 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:[email protected]: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

    I did exactly what you said but it still gives me the same error. It didn't solve the problem.

    I added the above proxy settings, but now I am getting 404- Not Found, in place of 407- Proxy Authentication

    What if my password contains a "@"?

    On Xubuntu 19.10 I had to add a config file to `/etc/apt/apt.conf.d/` like `/etc/apt/apt.conf.d/00proxy` since no general `/etc/apt/apt.conf` exists.

    @Đēēpak I'd try url percent encoding. Havent tested this on apt but this worked for special characters in proxy env variables.

  • 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:[email protected]:port/";
    Acquire::https::Proxy "https://username:[email protected]:port/";
    Acquire::ftp::Proxy "ftp://username:[email protected]:port/";

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

    Acquire::http::Proxy "http://username:p%[email protected]:port/"; 


    I added the above proxy settings, but now I am getting 404- Not Found, in place of 407- Proxy Authentication

    What is the difference between first and fourth line????

  • 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 http://cntlm.sourceforge.net/ for docs.

    In order to get `sudo apt-get install cntlm` to work you first need to go through that proxy.

  • 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

    (from http://www.ubuntugeek.com/how-to-configure-ubuntu-desktop-to-use-your-proxy-server.html)

    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.

    I use Ubuntu 11, can u help me in reaching synaptic

    also where exactly in thie bash.bashrc does one need to plug in the username and password

    `export http_proxy=http://username:[email protected]:port/`

    i gave the command sudo echo "export http_proxy=http://swastik:[email protected]:8081/" >> /etc/bash.bashrc even now i get the same error

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

    export http_proxy='http://Pankaj Kumar Pandit:[email protected]:3128/'

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

    export http_proxy=http://Pankaj_Kumar_Pandit:[email protected]:3128/

    The difference is the addition of opening and closing '.

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

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

    username:[email protected]

    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 how you can that: http://www.obkb.com/dcljr/charstxt.html

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

    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.

    Thank you! This was the only answer that actually helped me. Other answers (that I already knew) are assuming the proxy is using Basic HTTP authentication, which was not my case.

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


    Let’s say you have saved the setproxy.py in the Downloads folder

    • Open terminal Type
    • cd ~/Downloads

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

    • sudo python setproxy.py 3128 king queen

    In case of simple proxy Without authentication the command is:

    • sudo python setproxy.py 3128

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

    • sudo python2.7 setproxy.py 3128
    • sudo python2.7 setproxy.py 3128 king queen

    Using dropbox or copy for storing scripts is very bad. You should use github, or paste.bin at least

  • You can also try the following commands.

    For http connection - export:

    http_proxy="http://username:[email protected]_server_address:port_no"

    For https connection - export:

    https_proxy="https://username:[email protected]_server_address:port_no"

    And likewise for ftp and other connections.

License under CC-BY-SA with attribution

Content dated before 6/26/2020 9:53 AM