89 votes

Comment puis-je définir des serveurs proxy pour l'ensemble du système dans Xubuntu, Lubuntu ou Ubuntu Studio ?

Je ne trouve nulle part les paramètres du proxy. Dois-je le paramétrer via le terminal, via gconftools ou y a-t-il une interface graphique pour cela ?

118voto

ish Points 134738

Les proxies à l'échelle du système dans Ubuntu Studio, Xubuntu et XFCE doivent être définis par des variables d'environnement.

Ubuntu Studio, comme Xubuntu, utilise l'environnement de bureau XFCE qui ne contient pas d'outil de paramétrage graphique permettant de définir des proxies pour l'ensemble du système ( contrairement à l'environnement de bureau par défaut d'Ubuntu, Unity ).

1. Configurer le/les proxy(s) pour la plupart des programmes

  • Ouvrez le /etc/environment avec gksudo leafpad (ou votre éditeur préféré). Ce fichier stocke les variables du système initialisées au démarrage.
  • Ajoutez les lignes suivantes, en les modifiant de manière appropriée. Vous devez dupliquer en majuscules et en minuscules car (malheureusement) certains programmes ne recherchent que l'un ou l'autre :

    http\_proxy=http://myproxy.server.com:8080/
    https\_proxy=http://myproxy.server.com:8080/
    ftp\_proxy=http://myproxy.server.com:8080/
    no\_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
    HTTP\_PROXY=http://myproxy.server.com:8080/
    HTTPS\_PROXY=http://myproxy.server.com:8080/
    FTP\_PROXY=http://myproxy.server.com:8080/
    NO\_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"

2. Configurez ensuite des proxies pour les programmes GTK3 tels que Rhythmbox :

Certains programmes GTK3 plus récents, tels que Rhythmbox, ignorent les variables d'environnement définies ci-dessus et s'appuient plutôt sur les paramètres de Gnome. Pour vous assurer qu'ils sont couverts, ouvrez un terminal et collez le texte ci-dessous ligne par ligne, en le modifiant si nécessaire :

gsettings set org.gnome.system.proxy mode 'manual' 
gsettings set org.gnome.system.proxy.http host 'myproxy.server.com'
gsettings set org.gnome.system.proxy.http port 8080

3. Enfin, configurez les proxies pour apt-get et le gestionnaire de mise à jour

  • Ces programmes n'obéiront pas non plus aux variables d'environnement. Créez un fichier appelé 95proxies sur /etc/apt/apt.conf.d/ et comprennent les éléments suivants :

    Acquire::http::proxy "http://myproxy.server.com:8080/";
    Acquire::ftp::proxy "ftp://myproxy.server.com:8080/";
    Acquire::https::proxy "https://myproxy.server.com:8080/";

Enfin, déconnectez-vous et redémarrez pour vous assurer que les changements prennent effet.


Sources : 1 , 2 , 3 . Voir 1 en particulier pour une aide supplémentaire, y compris un script pour activer/désactiver rapidement les proxies.


scripts pour activer/désactiver le serveur Proxy :

Avis de non-responsabilité : : Avant de poursuivre, notez que j'ai essayé ceci sur Lubuntu 14.04 et qu'il est IMPORTANT qu'avant d'exécuter les scripts mentionnés, le fichier /etc/environment ne doit comporter qu'une seule ligne, à savoir '$PATH...' et il ne doit rien y avoir d'autre dans le fichier, sinon vous devrez peut-être modifier le code du script. Ces script configurent et décommandent le proxy comme décrit ci-dessus, mais ils s'appuient sur la troncature et l'ajout de fichiers pour modifier le code de l'utilisateur. /etc/environment y /etc/apt/apt.conf.d/95proxies fichiers. Assurez-vous donc que :

1) /etc/environment ne contient qu'une seule ligne, à savoir "$PATH :...". Et rien d'autre.

2) Le dossier /etc/apt/apt.conf.d/95proxies n'existe pas ou n'a rien important en lui.

Donc ! Si vous voulez automatiser le processus d'activation et de désactivation du proxy sans avoir à taper allot. vous pouvez faire deux Shell Shell exécutables. proxyon.sh y proxyoff.sh comme :

proxyon.sh:

if [ $(id -u) -ne 0 ]; then
  echo "This script must be run as root";
  exit 1;
fi

if [ $# -eq 2 ]
  then

  gsettings set org.gnome.system.proxy mode 'manual' ;
  gsettings set org.gnome.system.proxy.http host '$1';
  gsettings set org.gnome.system.proxy.http port $2;

  grep PATH /etc/environment > lol.t;
  printf \
  "http_proxy=http://$1:$2/\n\
  https_proxy=http://$1:$2/\n\
  ftp_proxy=http://$1:$2/\n\
  no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n\
  HTTP_PROXY=http://$1:$2/\n\
  HTTPS_PROXY=http://$1:$2/\n\
  FTP_PROXY=http://$1:$2/\n\
  NO_PROXY=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n" >> lol.t;

  cat lol.t > /etc/environment;

  printf \
  "Acquire::http::proxy \"http://$1:$2/\";\n\
  Acquire::ftp::proxy \"ftp://$1:$2/\";\n\
  Acquire::https::proxy \"https://$1:$2/\";\n" > /etc/apt/apt.conf.d/95proxies;

  rm -rf lol.t;

  else

  printf "Usage $0 <proxy_ip> <proxy_port>\n";

fi

proxyoff.sh :

if [ $(id -u) -ne 0 ]; then
  echo "This script must be run as root";
  exit 1;
fi

gsettings set org.gnome.system.proxy mode 'none' ;

grep PATH /etc/environment > lol.t;
cat lol.t > /etc/environment;

printf "" > /etc/apt/apt.conf.d/95proxies;

rm -rf lol.t;

Mode d'emploi : Une fois que vous avez fait ces scripts, rendez-les exécutables, vous pouvez les garder où vous voulez. Pour activer le proxy, tout ce que vous avez à faire est d'aller dans le répertoire contenant le scripts 'proxyon.sh' et ensuite vous devez taper sudo ./proxyon.sh {host} {port} . Prenons l'exemple suivant :

 $ sudo ./proxyon.sh 10.2.20.17 8080
 OR
 $ sudo ./proxyon.sh myproxy.server.com 8080

Où '10.2.20.17' est l'adresse IP du serveur proxy - vous pouvez aussi taper quelque chose comme myproxy.server.com - et '8080' est le port. Après cela, déconnectez-vous et connectez-vous à votre compte, pour vous assurer que tout est configuré. Vous pouvez alors commencer à utiliser Internet ou autre. Et quand vous voulez désactiver le proxy, allez dans le répertoire contenant 'proxyoff.sh' et tapez :

 $ sudo ./proxyoff.sh

Cela désactivera tous vos proxies. Maintenant, déconnectez-vous et reconnectez-vous pour passer en mode normal.

1 votes

0 votes

Si vous avez besoin d'une authentification pour le proxy apt-get, vous pouvez les définir comme ceci : Acquérir::http::proxy " user:pass@myproxy.server.com:8080 " ;

3 votes

Ce qui précède a fonctionné pour moi. Mais lorsque je ramène mon ordinateur portable du travail à la maison, où il n'y a pas de proxy, je ne peux pas me connecter à Internet. Existe-t-il un moyen rapide de désactiver à nouveau le proxy lorsque je rentre chez moi sans avoir à modifier les fichiers de configuration et à redémarrer ? Ce serait un bon complément à la réponse.

7voto

alemayo Points 572

Il existe un outil graphique appelé UbProxy, qui définit l'ensemble du proxy systema, via une interface graphique (GUI). Le seul problème pour moi, c'est que je dois me déconnecter de mon utilisateur et me reconnecter pour charger la configuration. C'est très simple à utiliser.

Vous pouvez le trouver sur Archives de code Google ou ses fourches sur

0 votes

Semble prometteur.

0 votes

Vous pouvez configurer automatiquement tous les différents paramètres de proxy requis par les différentes applications lorsque vous vous connectez au WiFi ou même au réseau filaire. Voir : gist.github.com/frgomes/544014b53e5384e00847da20b3e1da5b

3voto

bgt421 Points 438

J'ai quelques fonctions pour gérer cela. Appelez-les comme ceci :

myProxyOn

https://gist.github.com/fernando-basso/6352040

#!/usr/bin/env bash

# gsettings list-recursively org.gnome.system.proxy

# Change de ip address and port number accordingly.
function myProxyOn() {
    gsettings set org.gnome.system.proxy mode 'manual' # ' manual / nome / automatic '
    gsettings set org.gnome.system.proxy.http host '10.0.0.1'
    gsettings set org.gnome.system.proxy.http port 8080
    gsettings set org.gnome.system.proxy.https host '10.0.0.1'
    gsettings set org.gnome.system.proxy.https port 8080
    gsettings set org.gnome.system.proxy.ftp host '10.0.0.1'
    gsettings set org.gnome.system.proxy.ftp port 8080

    echo "Configuração do 'System Proxy' settada para 'manual', com host 10.0.0.1, port 8080."
}

function myProxyOff() {
    gsettings set org.gnome.system.proxy mode 'none' # ' manual / nome / automatic '
    echo "Proxy cofigurado para 'none'."
}

function proxyOn() { # {{{
    #echo -n 'Username: '
    #read -e username
    #echo -n 'Password: '
    #read -es password
    #echo ''
    echo 'Setting variable "http_proxy"...'
    #export http_proxy="http://$username:$password@172.17.0.1:8080/"
    export http_proxy="http://10.0.0.1:8080/"
    echo 'Setting variable "https_proxy..."'
    export https_proxy="https://10.0.0.1:8080/"
    echo 'Setting variable "ftp_proxy"...'
    #export ftp_proxy="http://$username:$password@172.17.0.1:8080/"
    export ftp_proxy="ftp://10.0.0.1:8080/"
    echo 'Done!'
}

function proxyOff() {
    unset HTTP_PROXY
    unset http_proxy
    unset FTP_proxy
    unset ftp_proxy
    echo -e "\nProxy environment variables removed!"
}

2 votes

C'est une suggestion terrible de stocker le mot de passe dans un fichier texte.

1 votes

@B : Vous avez raison. Dans mon cas, c'est le mot de passe proxy de l'université publique, donc, je suppose que cela n'a pas d'importance.

0 votes

Une idée de comment configurer un proxy socks ?

0voto

Dee Points 1906

Il n'est pas nécessaire de redémarrer tout le système pour apt-get tweak via le fichier proxy95 dans /etc/apt/apt.conf.d

  • Il fonctionne juste immédiatement après l'écriture du fichier et
  • il disparaît immédiatement après la disparition du fichier.

Considérez script pour activer et désactiver le fichier en le renommant en *.bak pour changer rapidement le proxy si nécessaire.

0voto

todd Points 11

Vous pouvez accomplir toute la configuration manuelle de la meilleure réponse ( /etc/apt/apt.conf , /etc/environment , /etc/bash.bashrc , gsettings ) et, en outre, Java en utilisant la fonction améliorée ubproxy GUI dans notre o2idev/ubproxy fourchette.


malheureusement, dans les nouvelles versions d'Ubuntu (basées sur gtk3) il doit y avoir des librairies Ubuntu dépendantes présentes qui étaient là auparavant. Jusqu'à ce que cela soit corrigé dans ubproxy, on doit au moins mettre en place le apt proxy manuellement et ensuite l'exécuter :

sudo apt install python python-gtk2
sudo python ubproxy

0 votes

Mais comment gérer votre ubproxy script ? Il nécessite gtk pour Python2, qui ne peut pas être installé depuis APT, car il est extrêmement obsolète et n'est plus supporté. Pourriez-vous inclure les bibliothèques nécessaires dans votre fichier Python requirements.txt et l'environnement virtuel ?

0 votes

Bonjour @séquence, j'ai ajouté les conseils au post ci-dessus. Malheureusement, je n'ai pas beaucoup de temps pour travailler sur le projet en ce moment. Un (vous) pourrait avoir accès au code et le faire vous-même ou vous me fournissez les changements nécessaires et je les applique simplement. désolé

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X