'apt-get' ne fonctionne pas avec Proxy

52

Pour la commande

sudo apt-get update

J'ai l'erreur suivante:

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

J'utilise Ubuntu 10.10 installé sur Windows XP à l'aide de VirtualBox. Pour les connexions Internet, j'utilise un serveur proxy avec une authentification. J'ai essayé d'utiliser un gnome-network-proxyoutil pour définir les paramètres de proxy sur l'ensemble du système.

Après que cela /etc/environmentait été mis à jour par http_proxyvariable avec le format http://my_proxy:port/, il n'y avait plus de données d'authentification.

J'ai vérifié cela avec Firefox. Le navigateur m'a demandé mon identifiant et mon mot de passe et tout fonctionnait bien. Ce n'était malheureusement pas le cas pour apt-get. J'ai aussi essayé de faire comme décrit ici . Malheureusement ça ne marche pas.

Peut-il être lié au fait qu'un proxy est dans un domaine Windows, des idées?

Mon nom de proxy est http-proxy . Est-ce que ' - ' est un caractère spécial ici?

Tommyk
la source
2
Avez-vous utilisé le proxy réseau global sous système -> préférences -> proxy réseau et appliqué globalement les paramètres?
DemonWareXT
Vous pouvez essayer l’outil graphique facile à utiliser GrrProxy
Renae Lider

Réponses:

53

Pour mon réseau d'entreprise, mon administrateur m'a donné le nom du proxy au format suivant:

http://[username]:[password]@[proxy-webaddress]:[port]

Pour notre réseau Windows, notre nom d'utilisateur est au format:

[domain]\[username]

Par exemple:

http://mywindowsdomain\fossfreedom:[email protected]:8080

Cela a été ajouté au fichier NEW suivant (il n'existe pas par défaut):

gksudo gedit /etc/apt/apt.conf.d/01proxy

Le texte suivant a été ajouté:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:[email protected]:8080";

Si vous utilisez un proxy anonyme, vous n'avez pas besoin de vos informations de connexion:

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";

Enregistrez le fichier puis vérifiez que tout va bien avec:

sudo apt-get update
fossfreedom
la source
Pour ceux qui liront ceci plus tard: Cela ressemble à un hack pour un œil non averti, mais c'est un moyen incroyablement simple d'obtenir le proxy de l'entreprise à obéir.
MacDuff
1
Cela fonctionne parfaitement. SAUF SI vous avez précédemment défini le fichier /etc/apt/apt.conf avec une mauvaise ligne Acquire. C'est ce que j'ai fait et tout ce que j'avais à faire était de revenir en arrière et de supprimer cette ligne.
Skip Huffman
Sur Ubuntu 12.10, je devais copier les modifications apportées à /etc/apt/apt.conf.d/01proxy dans /etc/apt/apt.conf avant que cela ne fonctionne.
Stephen Niedzielski
même avec ces modifications, je ne pouvais pas obtenir que cela fonctionne pour moi avec 12.04 ... mais j'ai réussi à le faire fonctionner en utilisant et en configurant ntlmaps et en pointant le fichier apt.conf vers le proxy intermédiaire.
Monkut
The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(ce qui ne fonctionnera bien sûr pas sans un proxy mis en place ...) Heureusement, ça sudomarche très bien.
TED
13

J'ai constaté que le nom d'utilisateur et le mot de passe entrés dans l'applet "Proxy réseau" ne sont pas stockés dans le fichier apt.conf; vous devez donc ajouter manuellement le nom d'utilisateur et le mot de passe dans le fichier /etc/apt/apt.conf.

L'applet "Proxy réseau" ne stocke que le nom d'hôte et le port.

La syntaxe de base est

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";

Si vous utilisez des noms d'utilisateur et un mot de passe Windows, suivez ces conseils:

User = Domain/Username

(les utilisateurs de Windows n'utilisent /pas \)

Si vous utilisez un mot de passe fort / complexe Windows avec des caractères spéciaux, vous devez utiliser le codage de l'URL pour les valeurs. Par exemple, un "@" dans le mot de passe serait "% 40".

MneMoth
la source
(Les utilisateurs de Windows utilisent / non) Alors C’est la raison pour laquelle je suis coincé :) Merci!
GaiusSensei
9

Essayez de régler http_proxysur http: // utilisateur: pass @ proxyserver: port /

edit:
Si le réglage http_proxyne fonctionne pas, essayez de le modifier apt.conf. Dans
Ubuntu apt.confest fragmenté dans le /etc/apt/apt.conf.d/répertoire.
Dans ce répertoire, éditez /etc/apt/apt.conf.d/01ubuntu:

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};

ou essayez de le configurer avec Synaptic: Paramètres -> Préférences -> Réseau
, puis définissez vos paramètres de proxy dans "Configuration manuelle du proxy".

Codeur occasionnel
la source
3
Voulez-vous dire / etc / environment file?
Tommyk
Oui, il va définir cette variable globalement.
Casual Coder
Comment pourrait-on encoder les deux points dans le cadre du mot de passe?
k0pernikus
/ etc / environment ne fonctionne pas avec apt-get (ou du moins il nécessite un redémarrage;), le changement d'apt.conf a un effet immédiat
Danubian Sailor
Je peux confirmer les paramètres "Configuration manuelle du proxy" et "Appliquer à l'ensemble du système" dans Réseau fonctionne avec apt-get.
Will Sheppard
4

Je suis derrière un proxy MS ISA et j'utilise Cntlm Authentication Proxy; dans le apt.confj'ai 4 lignes; J'ai lu quelque part que la dernière ligne doit être vide, mais je n'en suis pas sûr. Cela fonctionne parfaitement:

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";
diable
la source
3

cntlm a une option de découverte qui aide à trouver la bonne configuration pour fonctionner avec l’autorisation NTLM de votre réseau, essayez ceci:

cntlm -I -M http://test.com

copier et coller les résultats dans /etc/cntlm.conf

redémarrer cntlm

Tommyk
la source
'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(qui, bien sûr, ne fonctionnera pas si mon mandataire n'est pas réglé correctement ...)
TED
2
  1. Ouvrez le terminal et ajoutez les lignes suivantes à /etc/apt/apt.conf.

    gksu gedit /etc/apt/apt.conf
    
  2. Ajoutez ces 2 lignes:

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. Sauvegarder et quitter.

    Maintenant apt-get updateet devrait fonctionner derrière un proxy, mais vous remarquerez que quelque chose ne fonctionne toujours pas, c'est la add-apt-repositorycommande.

    Pour pouvoir ajouter un référentiel derrière un proxy, tapez les commandes suivantes:

    # export https_proxy="http://192.168.1.5:8080"
    # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share`/pyshared/softwareproperties/ppa.py`
    

    Vous pouvez maintenant ajouter des référentiels dans Lucid et Natty en utilisant LANG = C add-apt-repository

    Exemple:

    root @ ubuntu: ~ # LANG = C add-apt-repository ppa: motumedia / mplayer-daily

Via Unixmen

donadony
la source
2

Comment appliquer apt-get update ou installer dans Ubuntu? J'étais derrière un serveur proxy et après l'installation d'Ubuntu, je ne pouvais plus rien mettre à jour ou installer en utilisant la commande apt-get. Après une recherche, j’ai trouvé que le paquet apt avait été modifié, il n’y a plus de fichier apt.conf dans le répertoire / etc / apt.

Ce que j'ai fait pour résoudre ce problème est le suivant:

Terminal ouvert et le fichier

sudo -H gedit /etc/bash.bashrc

et ajoutez au bas du fichier ces 2 lignes:

#proxy 
export http_proxy=http://user:password@host:port/
export ftp_proxy=http://user:pass@host:port/

Maintenant, sauvegardez et quittez, vous pourrez maintenant mettre à jour, mettre à jour ou installer des paquets dans Ubuntu

hhlp
la source
J'ai ajouté des exportations comme vous l'avez suggéré. Cela ne fonctionne toujours pas. Maintenant, j'ai un message d'erreur différent "Impossible de se connecter à extras.ubuntu.com:80 (91.189.88.33). - connect (110: la connexion a expiré)". <br> Chose étrange, lorsque je saisis les mêmes paramètres de proxy dans les préférences de Firefox, je peux naviguer sur le Web.
Tommyk
@tommyk pourriez-vous poster votre /etc/apt/sources.list et mettre à jour votre question ici ou essayez de supprimer extras.ubuntu.com de votre /etc/apt/sources.list et exécutez apt-get update
hhlp
J'ai remplacé mon fichier sources.list par un fichier par défaut de la page Web Ubuntu. J'ai toujours la même erreur pour chaque référentiel répertorié dans ce fichier.
Tommyk
2

Celui-ci a fonctionné pour moi !!

(ajouter manuellement un proxy à partir de l'interface graphique via les paramètres système-> réseau, etc. devrait fonctionner) Mais si ce n'est pas le cas et que vous exportez une variable env depuis le terminal:

export http_proxy=http://<your proxy url>:<proxy port>

et encore pour https:

export https_proxy= <usually the same as the http>

Le plus important d'ajouter le -E: Pour exécuter sudo apt-get installou sudo apt-get updatevous devez exécuter:

sudo -E <command>

Les "-E" utilisent vos variables d’environnement utilisateur pour la racine (sudo), d’autre part le http_proxy / https_proxy que vous venez d’exporter.

J'espère que ça aide :)

Kohn1001
la source
1

Avec un proxy BlueCoat, pour moi, le format du apt.conffichier devait ressembler à:

Acquire::http::proxy "http://Domain%5cUserID:[email protected]:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:[email protected]:80/";
Acquire::https::proxy "https://Domain%5cUserID:[email protected]:80/";

^ ^ ^ ^ Ligne vide après la 3ème ligne proxy, n'entrez pas cette ligne. ^ ^ ^ ^

Jason
la source
1

Avait ce même problème après l'installation d'Ubuntu 18.04. Ce qui a fonctionné pour moi a été de:

  1. Ouvrir l'écran du proxy réseau dans les paramètres réseau
  2. Sélectionnez Manuel et ajoutez les informations de proxy http et https.
  3. De plus, définissez le champ Ignore Hosts avec:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Ubuntu redémarré

En ce qui concerne le point 3, vous ne savez pas si l'ajout de l'entrée ci-dessus fonctionne ou non, mais cette étape fonctionne pour moi

Vuzi
la source
0
  1. Démarrez Synaptic (sélectionnez Système -> Administration -> Synaptic dans Gnome 2 ou tapez "synaptic" dans le tableau de bord dans Unity).
  2. Dans la barre de menus, cliquez sur Paramètres , puis sur Préférences .
  3. Lorsque la fenêtre Préférences apparaît, cliquez sur l' onglet Réseau .
  4. Sélectionnez le bouton radio Configuration manuelle du proxy et entrez vos informations de proxy.
  5. Pour appliquer les informations d'authentification, cliquez sur le bouton Authentification et entrez le nom d'utilisateur et le mot de passe.
  6. Cliquez sur OK pour fermer la fenêtre Authentification HTTP.
  7. Cliquez sur OK pour fermer la fenêtre Préférences.
  8. Cliquez sur le bouton Recharger pour mettre à jour les listes de paquets.

Notez que ce changement de paramètre affectera également le gestionnaire de mise à jour .

NC Weber
la source
0

Cette solution monocouche a fonctionné pour moi:

sudo env http_proxy=http://<ip>:<port> apt-get update
Raheel
la source