Configurer le proxy pour APT?

72

J'ai besoin de configurer le proxy. Il n'y avait pas de apt.conffichier dans etc/apt/donc je l'ai créé en utilisant nano.

Mais je ne comprends pas ce que je dois écrire ici. J'ai écrit http_proxy = http://lgn:[email protected]:8080/là-bas et ensuite redémarré networking. Mais quand j'essaie de apt-get update- ça ne marche pas.

En fait, je ne comprends pas quel port et quelle ip je devrais écrire dans un apt.conffichier (il y avait un exemple avec 192.168.1.254ip et 8080port, alors j’ai décidé de les utiliser).

lapots
la source
Il y a un changement dans les paramètres de proxy pour obtenir du travail dans un proxy d'entreprise dans ubuntu, visitez github.com/navinas33/docker_ubuntu.git cela fonctionne ...
Sélectionnez le

Réponses:

103

Pour utiliser un proxy, vous avez besoin d'un serveur proxy. L'adresse IP et le port doivent provenir de ce serveur proxy. Login et pwd doivent être votre utilisateur et votre mot de passe sur le serveur proxy (si le proxy requiert une connexion).

Sur le site help.ubuntu.com :

Méthode du fichier de configuration APT

Cette méthode utilise le fichier apt.conf qui se trouve dans votre répertoire / etc / apt /. Cette méthode est utile si vous voulez seulement qu'apt-get (et pas d'autres applications) utilise un proxy http de manière permanente.

Sur certaines installations, aucun fichier apt-conf ne sera configuré. Editez le fichier apt-conf (ou créez-en un nouveau si vous n'en avez pas encore) en utilisant l'éditeur de votre choix.

sudo nano /etc/apt/apt.conf

Ajoutez cette ligne à votre fichier /etc/apt/apt.conf (remplacez vos informations par votre adresse proxy et votre proxyport).

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

Enregistrez le fichier apt.conf.

Si votre proxy a besoin d'un identifiant / mot de passe, remplacez:

"http://yourproxyaddress:proxyport";

avec:

"http://username:password@yourproxyaddress:proxyport";

en utilisant le nom d'utilisateur et le mot de passe du serveur proxy.

laurent
la source
6
L'ajout d'un fichier local séparé /etc/apt/apt.conf.d/est préférable, vous n'avez donc pas à modifier les fichiers de configuration de base du système. Ainsi, s'ils sont mis à jour dans une version de package ultérieure, vous n'avez pas à fusionner manuellement vos modifications locales.
triple-
Existe-t-il un fichier proxy conf dans le répertoire utilisateur?
Becko
Cette réponse nécessite une mise à jour: gksudo est obsolète. Pensez à suggérer un autre éditeur non graphique ou sudo -Hau lieu de gksudo si vous utilisez gedit ou similaire.
24

C'est une réponse plus générale avec apt config.

Comme il existe de nombreux emplacements pour configurer les paramètres de proxy, cela peut prêter à confusion au début. Permettez-moi de résumer certaines choses et de suggérer quelques bonnes pratiques.

Pour les programmes en console

Ex: wget, git et presque toutes les applications de la console qui se connectent à Internet.

Si vous souhaitez configurer le proxy chaque fois que vous exécutez vos commandes pour une raison quelconque, définissez les variables d'environnement à l' aide des commandes suivantes.

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Sinon, si vous souhaitez utiliser les mêmes paramètres à chaque fois pour tous les utilisateurs, utilisez-les.

Configurez dans bashrc

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Configurer dans /etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

Configurer en utilisant l'interface graphique

Ouvrez les paramètres réseau et configurez le proxy réseau de votre système.

Réseau -> Proxy réseau -> Configurer -> Appliquer à l’échelle du système.

Mais cela pourrait ne pas être utile si vous avez une authentification pour le proxy.

Pour apt.

Vous devez faire un travail supplémentaire pour apt, car accessoirement, apt ne respecte pas les variables d’environnement,

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

Pour tout ce qui ne fait pas partie de cette étendue, il doit exister une option permettant de configurer les paramètres de proxy dans l'application elle-même. Si non je suis désolé;)

matriciel
la source
2
la configuration dans / etc / environment est très importante car si vous configurez simplement la variable http_proxy pour votre utilisateur, lorsque vous passez en mode sudo (pour des choses comme 'sudo apt-get update'), le terminal ne conserve généralement pas l'environnement actuel. vars; très important de tester vos paramètres: sudo echo $ http_proxy
belun
HTTP_PROXY(en majuscule) semble être le nom standard de cette variable, bien que de nombreux programmes retombent dans la version en minuscule. https_proxy(notez les minuscules) est la bonne capitalisation pour cela, mais vous ne l'utiliseriez jamais seule, comme vous le faites /etc/environmentci - dessus. (Je pense que sc'est une faute de frappe.)
Curt J. Sampson
Quelle est la raison pour laquelle APT requiert une configuration supplémentaire de proxy? Pourquoi ne pas simplement obéir avec / etc / environment?
Loreno
22

Quelque chose comme ce qui suit devrait fonctionner:

Acquire::http::proxy "http://lgn:[email protected]:8080/";
Acquire::https::proxy "http://lgn:[email protected]:8080/";
Dennis Kaarsemaker
la source
Y a-t-il une différence quel port et ip utiliser?
lapots
Eh bien, oui, vous devez bien sûr entrer les détails corrects pour le proxy que vous souhaitez utiliser.
Dennis Kaarsemaker
euh ... ip - c'est l'ip du routeur? Je veux dire cette adresse IP que j'ai utilisée par exemple, mais tous les paramètres du routeur sont configurés dans le navigateur à l'aide de l' 192.168.1.1adresse IP. Je devrais utiliser .1? et le nom d'utilisateur et le mot de passe devraient être la racine ou le routeur d'ubuntu?
lapots
2
Savez-vous même ce que vous faites? Comment savez-vous que vous devez utiliser un proxy si vous n'en connaissez pas les détails?
Dennis Kaarsemaker
5
Ensuite, demandez à votre professeur. Ce n'est pas un site "faire mes devoirs pour moi".
Dennis Kaarsemaker
5

Ce que vous pouvez faire est aussi d’essayer d’exécuter une commande avec sudo -Eles paramètres d’environnement. Cela semble fonctionner pour moi lorsque j'essaie de mettre à jour, d'ajouter-apt-repository et d'installer. Exemple:

sudo -E add-apt-repository ppa:xxxxx

Selon @David Foerster, cela ne fonctionne que pour les interactions manuelles utilisant un shell, mais cela ne fonctionnera pas avec les tâches automatisées et les services appelant Apt sans interaction de l'utilisateur.

Frank Qiu
la source
Cela n’aidera pas avec les tâches automatisées et les services invoquant Apt sans interaction de l’utilisateur.
David Foerster
Merci pour la notification, je vais ajouter votre commentaire à la réponse.
Frank Qiu
2

Si vous avez besoin d'utiliser apt derrière un proxy, probablement tout le reste a également besoin de la configuration du proxy. J'aime gérer mes paramètres de proxy en un seul endroit, qui serait la variable d'environnement.

Pour cela, je crée un /etc/profiles.d/99-proxy.sh, qui contient les paramètres proxy nécessaires (comme décrit ci-dessous):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

De cette façon, tous les utilisateurs de cette machine ont accès au proxy. (n'oubliez pas chmod a+x)

Lorsque vous utilisez apt ou apt-get en tant qu'utilisateur, cet utilisateur peut utiliser sudo. Comme Frank Qiu l'a décrit, sudo ne transmet pas les variables d'environnement. Pour cela vous pouvez ajouter

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

à (par exemple)

/etc/sudoers.d/00-environment 

ou directement dans le

/etc/sudoers

fichier. De cette façon, vous ne devez gérer les paramètres du proxy qu’à un seul endroit.

muluman88
la source
0

La question initiale pourrait être dans la mauvaise direction. Je crois que vous voulez installer un serveur proxy sous Linux?

Eh bien, c'est complètement différent de vouloir utiliser un proxy existant depuis un environnement Linux.

Si votre question est la première, utilisez un service tiers pour configurer un serveur proxy sous Linux. Un exemple pourrait être calmar.

Commandes simples pour installer squid:

$ sudo apt-get install squid3

Ensuite, éditez la configuration pour autoriser le réseau local (dans ce cas, votre propre ordinateur). $ sudo vi /etc/squid3/squid.conf

Ajoutez / modifiez les lignes suivantes:

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

En supposant que votre adresse IP pour la machine Linux soit dans un bloc 192.168.1 / 24.

Néo
la source
La plupart des lecteurs de cette question ont probablement déjà installé squid;), définissent également les http[s]_proxyvariables ENV et se demandent maintenant pourquoi APT ne fonctionne toujours pas. Mais si vous obtenez le protocole HTTP 403 de tout sauf de la machine avec squid- vérifiez à nouveau toutes les occurrences du mot denyqui ne sont pas commentées. (surtout avec http_accesssur la même ligne.)
Tomasz Gandor Le