Comment modifier mes paramètres de proxy en fonction du réseau auquel je me connecte?

20

Le réseau d'entreprise de mon entreprise me demande de définir un proxy réseau pour accéder au net, mais quand je suis ailleurs, je n'en ai pas besoin. Les paramètres de proxy dans Ubuntu (Système -> Préférences -> Serveur proxy) m'ont permis de créer des "emplacements" que je peux sélectionner manuellement. Ensuite, j'ai un emplacement "par défaut" (sans proxy) et un emplacement "work" (avec le proxy de mon entreprise).

Existe-t-il un moyen pour qu'Ubuntu sélectionne automatiquement l'emplacement "de travail" en fonction de la connexion que j'utilise? Je pensais pouvoir utiliser le sous-réseau IP (très spécifique) pour détecter où je suis, mais je ne sais pas comment le configurer ...

Edit: J'ai vraiment besoin que les paramètres du proxy soient définis au niveau du système. Toutes mes connexions réseau (IMAP, SMTP, chat, etc.) doivent passer par le proxy. Pas seulement le navigateur Web.

Little Jawa
la source

Réponses:

7

Je peux penser à une façon, mais la configuration sera un peu obscure.

Fondamentalement, vous pouvez utiliser un fichier PAC

Installez un serveur Web sur votre système, tout petit serveur Web fera l'affaire, vous n'avez pas besoin d'un énorme système comme Apache.

Créez un fichier wpad.datavec des directives PAC qui correspondent en fonction de votre adresse source, puis configurez votre système pour utiliser le bon proxy.

Dans Firefox, configurez le proxy pour pointer vers votre fichier PAC local. Ce serait probablement quelque chose comme ça http://localhost/wpad.dat.

Votre fichier PAC pourrait ressembler à ceci ( non testé ). Voir ici pour plus d' exemples de PAC .

function FindProxyForURL(url, host) {   
  // If on a internal/LAN IP address, send traffic direct.
  if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0"))
  {        
    return "PROXY 1.2.3.4:8080; PROXY 4.5.6.7:8080; DIRECT";
  }
  else
  {
    return "DIRECT";
  }
}

Je ne l'ai jamais essayé et je ne suis pas sur un système à tester, mais vous pouvez même être en mesure de spécifier le fichier PAC en utilisant une file://URL dans Firefox, ce qui signifierait que vous pourriez ignorer la configuration du serveur Web.

Bien sûr, il existe également une solution rapide et facile, mais cela nécessite un petit effort de votre part lorsque vous vous déplacez entre les emplacements. Installez l' extension Quick Proxy Firefox et cliquez simplement sur le bouton de votre barre d'outils pour activer ou désactiver le proxy. Si vous êtes prêt à gérer cela avec une extension Firefox, vous pouvez également essayer FoxyProxy , il prend en charge la configuration de plusieurs profils proxy et vous pouvez facilement basculer entre les profils.

Zoredache
la source
Intéressant ... Je vais devoir tester. Je vais vous dire comment ça se passe. Je pense que l'extension Firefox ne suffira pas: le proxy est utilisé pour tous les protocoles, pas seulement HTTP. Alors j'en ai aussi besoin pour l'Empathie, l'Evolution, tout.
Little Jawa
Oh, et une autre chose. Vous pouvez demander au responsable informatique de configurer WPAD. Ensuite, vous pouvez simplement utiliser l'option proxy automatique.
Zoredache
Eh bien ... faire en sorte que l'informatique fasse n'importe quoi n'est pas une option, je le crains. Je peux faire une demande, mais je ne verrai certainement rien se produire. Aucune justification commerciale ne signifie aucune ressource pour le faire. Et je serai plus rapide à le faire moi-même qu'à écrire une justification :-)
Little Jawa
D'accord. Après un peu plus de lecture, je ne suis pas satisfait de cette solution. Il semble que cela fonctionnerait (je n'ai pas essayé de le mettre en œuvre), mais il ne serait pas disponible à l'échelle du système. Cela ne fonctionnerait que pour le navigateur Web, car (selon findproxyforurl.com/index.html ), le système n'est pris en charge que dans le navigateur Web (car il repose sur Javascript).
Little Jawa
5

Dans Ubuntu 10.10, le script .pac fonctionne bien. Comme Zoredache l'a expliqué, configurez un serveur Web, placez-y un fichier pac, ouvrez Système-> Préférences-> Proxy réseau et définissez "URL de configuration automatique" à l'emplacement du fichier pac.

Exemple de fichier PAC qui vérifie sa propre adresse IP: /var/www/selectProxy.pac:

function FindProxyForURL(url, host)
 {
 if (myIpAddress() == "192.168.22.63") { 
 return "PROXY 192.168.22.8:8080";
 }
 else {
 return "DIRECT";
 }
 }

Dans les préférences du proxy réseau: l'URL serait:

http://localhost/selectProxy.pac

la source
3

En complément de la réponse de Zoredache, vous pouvez utiliser un script dans /etc/network/if-up.d pour générer un extrait dans /etc/profile.d/ contenant vos variables de shell proxy. Notez que cela ne fonctionnera qu'avec de nouveaux shells.

De plus, cette méthode peut être utilisée pour générer un fichier WPAD, vers lequel vous pouvez pointer tous les navigateurs qui le prennent en charge.

Michel
la source
2

Ceci est un assez vieux poste, mais je l'ai trouvé. Jetez un œil: http://marin.jb.free.fr/proxydriver/

Vous pouvez installer le package .deb fourni pour Ubuntu. Il s'agit essentiellement d'un script shell qui modifie les variables d'environnement lorsque votre réseau change. Vous pouvez configurer les paramètres de chaque réseau en modifiant (automatiquement) les fichiers de configuration créés dans/etc/proxydriver.d/

user60158
la source
2
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Eliah Kagan
0

J'ai le même problème. Veuillez généraliser toutes les réponses pour inclure ma situation.

J'utilise mon ordinateur portable à la maison sur le sans fil: - toujours l'adresse IP statique de l'interface eth1 (192.168.1.10)

Quand je vais travailler, je le branche: - toujours l'adresse IP dynamique de l'interface eth0 (10.10.xx.xx), ET un proxy: 10.10.123.123 port 8888

Je veux qu'Ubuntu définisse automatiquement l'adresse IP et le proxy en fonction de l'interface que j'utilise.

(J'ai foiré dans / etc / network / interfaces [voir "interfaces homme" et /etc/resolv.conf en vain.


la source
1
Si je comprends bien: votre carte Wifi a une IP statique - alors elle est déjà configurée "automatiquement". Et votre réseau câblé est défini par DHCP - qui est également automatique ... Alors, que voulez-vous ajouter à cela, en ce qui concerne les paramètres IP? Je comprends le besoin de proxy, mais pas l'IP.
Little Jawa
Vous savez, je pense que vous avez raison. Je suis de retour au travail après les holdiays et il semble fonctionner automatiquement. Je pense que le seul problème est le proxy. J'enquêterai plus demain.
0

J'utilise l'approche des fichiers PAC et cela fonctionne bien pour la navigation, mais pas si bien pour de nombreuses autres applications qui ne comprennent pas les fichiers PAC - je suppose que lorsqu'une application demande une "configuration de proxy" via l'API, elle obtient simplement URL du fichier PAC si vous en utilisez un.

Pour les applications utilisateur qui n'ont pas de support proxy ou ne comprennent pas les fichiers PAC (comme Empathy), j'utilise tsocks (car j'utilise un tunnel SSH pour mon support proxy).

Lier un moteur JavaScript ou un analyseur PAC à chaque application qui prend en charge la configuration de base du proxy semble exagéré. Cela semble être un cas qui pourrait bénéficier d'une prise en charge de plate-forme sous-jacente avec un appel d'API qui interprète réellement le fichier PAC et renvoie le résultat, au lieu de son URL.

Adrian
la source
0

c'est un vieux post à ce stade, mais je suis venu ici à la recherche d'un moyen de le faire et j'ai trouvé une réponse différente. La réponse avec laquelle je travaille réside dans un package appelé «whereeami» et vous oblige à définir le sous-réseau de votre travail dans son fichier detect.conf, puis à définir le serveur proxy sur le fichier whereeami.conf. Devrait fonctionner, et je posterai avec tous les problèmes que j'ai.

Bonne chance!

Beex
la source
1
Bienvenue sur Ask Ubuntu! Alors ... comment quelqu'un pourrait-il réellement faire ça? Pouvez-vous fournir des instructions? Pour l'instant, cela ne répond pas vraiment à la question ...
Eliah Kagan