it-swarm-eu.dev

Wie ändere ich meine Proxy-Einstellungen in Abhängigkeit von dem Netzwerk, mit dem ich verbunden bin?

Für das Unternehmensnetzwerk meines Unternehmens muss ich einen Netzwerk-Proxy einrichten, um auf das Netzwerk zuzugreifen. Wenn ich jedoch an einem anderen Ort bin, brauche ich diesen nicht. Die Proxy-Einstellungen in Ubuntu (System -> Einstellungen -> Proxy-Server) ermöglichten es mir, "Orte" zu erstellen, die ich manuell auswählen kann. Dann habe ich einen "Standard" -Standort (ohne Proxy) und einen "Arbeits" -Standort (mit Proxy meines Unternehmens).

Gibt es eine Möglichkeit, Ubuntu zu veranlassen, den "Arbeits" -Ort basierend auf der von mir verwendeten Verbindung automatisch auszuwählen? Ich dachte, ich könnte das IP-Subnetz (sehr spezifisch) verwenden, um festzustellen, wo ich bin, aber ich habe keine Ahnung, wie ich es einrichten soll ...

Bearbeiten: Ich muss die Proxy-Einstellungen unbedingt auf Systemebene festlegen. Alle meine Netzwerkverbindungen (IMAP, SMTP, Chat usw.) müssen den Proxy durchlaufen. Nicht nur der Webbrowser.

20
Little Jawa

Ich kann mir eine Möglichkeit vorstellen, aber die Einrichtung wird etwas dunkel.

Grundsätzlich können Sie eine PAC -Datei verwenden

Installieren Sie einen Webserver auf Ihrem System, jeder kleine Webserver reicht aus, Sie brauchen kein riesiges System wie Apache.

Erstellen Sie eine Datei wpad.dat mit PAC-Anweisungen, die auf der Basis Ihrer Quelladresse übereinstimmen, und konfigurieren Sie Ihr System für die Verwendung des richtigen Proxys.

Konfigurieren Sie in Firefox den Proxy so, dass er auf Ihre lokale PAC-Datei verweist. Es wäre wahrscheinlich so etwas wie http://localhost/wpad.dat.

Ihre PAC-Datei könnte ungefähr so ​​aussehen ( ungetestet ). Weitere Informationen finden Sie hier PAC-Beispiele .

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";
  }
}

Ich habe es noch nie ausprobiert und bin nicht in der Lage, ein System zu testen. Möglicherweise können Sie die PAC-Datei sogar mit einer file:// -URL in Firefox angeben. Dies würde bedeuten, dass Sie die Einrichtung des Webservers überspringen könnten.

Natürlich gibt es auch die schnelle und einfache Lösung, aber Sie müssen sich ein wenig anstrengen, wenn Sie zwischen den Standorten wechseln. Installieren Sie die Firefox-Erweiterung Quick Proxy und klicken Sie auf die Schaltfläche in Ihrer Symbolleiste, um den Proxy ein- oder auszuschalten. Wenn Sie bereit sind, mit einer Firefox-Erweiterung umzugehen, können Sie auch versuchen FoxyProxy , es unterstützt das Einrichten mehrerer Proxy-Profile und Sie können problemlos zwischen Profilen wechseln.

7
Zoredache

In Ubuntu 10.10 funktioniert das .pac-Skript gut. Wie Zoredache erklärte, richten Sie einen Webserver ein, legen Sie dort eine Pac-Datei ab, öffnen Sie System-> Preferences-> Network Proxy und setzen Sie die "Autoconfiguration URL" auf den Speicherort der Pac-Datei.

Beispiel einer PAC-Datei, die nach der eigenen IP-Adresse sucht: /var/www/selectProxy.pac:

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

In den Netzwerk-Proxy-Einstellungen lautet die URL:

http://localhost/selectProxy.pac
5
Markus

Als Ergänzung zu Zoredaches Antwort können Sie ein Skript in /etc/network/if-up.d verwenden, um ein Snippet in /etc/profile.d/ zu generieren, das Ihre Proxy-Shell-Variablen enthält. Beachten Sie, dass dies nur mit neuen Shells funktioniert.

Zusätzlich kann diese Methode verwendet werden, um eine WPAD-Datei zu generieren, auf die Sie einen Browser verweisen können, der dies unterstützt.

3
Michel

Dies ist ein ziemlich alter Beitrag, aber ich habe ihn gefunden. Schauen Sie doch mal rein: http://marin.jb.free.fr/proxydriver/

Sie können das für Ubuntu bereitgestellte .deb-Paket installieren. Dies ist im Grunde ein Shell-Skript, das die Umgebungsvariablen ändert, wenn sich Ihr Netzwerk ändert. Sie können die Einstellungen für jedes Netzwerk konfigurieren, indem Sie die in /etc/proxydriver.d/ (automatisch) erstellten Konfigurationsdateien bearbeiten.

2
user60158

dies ist ein alter Beitrag zu diesem Zeitpunkt, aber ich bin auf der Suche nach einer Möglichkeit hierher gekommen und habe eine andere Antwort gefunden. Die Antwort, mit der ich arbeite, liegt in einem Paket mit dem Namen 'whereami'. Sie müssen das Subnetz Ihrer Arbeit in der Datei detect.conf definieren und anschließend den Proxyserver in der Datei whereami.conf definieren. Sollte funktionieren, und ich werde mit allen Problemen posten, die ich habe.

Viel Glück!

0
Beex

Ich habe das gleiche Problem. Bitte verallgemeinern Sie alle Antworten auf meine Situation.

Ich verwende meinen Laptop zu Hause über WLAN: - Immer die statische IP-Adresse der eth1-Schnittstelle (192.168.1.10)

Wenn ich zur Arbeit gehe, schließe ich Folgendes an: - Immer die dynamische IP-Adresse der eth0-Schnittstelle (10.10.xx.xx) UND einen Proxy: 10.10.123.123 Port 8888

Ich möchte, dass Ubuntu die IP-Adresse und den Proxy automatisch basierend auf der von mir verwendeten Schnittstelle einstellt.

(Ich habe in/etc/network/interfaces herumgespielt [siehe "man interfaces" und /etc/resolv.conf ohne Erfolg.

0
Bill

Ich verwende den PAC-Dateiansatz und er funktioniert gut zum Browsen, aber nicht so gut für viele andere Anwendungen, die PAC-Dateien nicht verstehen. Ich vermute, wenn eine App über die API nach "Proxy-Konfiguration" fragt, erhalten sie nur die PAC-Datei-URL zurück, wenn Sie eine verwenden.

Für Benutzeranwendungen, die entweder keine Proxy-Unterstützung haben oder PAC-Dateien nicht verstehen (wie Empathy), verwende ich tsocks (weil ich einen SSH-Tunnel für die Proxy-Unterstützung verwende).

Das Verknüpfen einer JavaScript-Engine oder eines PAC-Parsers mit jeder Anwendung, die die grundlegende Proxy-Konfiguration unterstützt, scheint übertrieben. Dies scheint ein Fall zu sein, der von der Unterstützung einiger zugrunde liegender Plattformen mit einem API-Aufruf profitieren könnte, der die PAC-Datei tatsächlich interpretiert und das Ergebnis anstelle der URL zurückgibt.

0
Adrian