Kann ich Windows 7 veranlassen, meine Proxy-Einstellungen basierend auf meiner Netzwerkverbindung zu ändern?

26

Verschieben meines LapTop zwischen Arbeit und Zuhause Ich muss meine Internet-Proxy-Einstellungen ändern. Gibt es eine eingebaute Möglichkeit für Windows 7, diese Einstellungen basierend auf meinem derzeit aktiven Netzwerk zu ändern?

Hakan Forss
quelle
1
Nun, ich möchte, dass mein Laptop dasselbe tut, nur zu faul, um nach der Antwort zu suchen :-(
Ivo Flipse

Antworten:

20

Sie können dies mit einem PAC (Proxy Auto Configuration Script) einrichten. Es handelt sich um kleine Skripte, die in Javascript geschrieben wurden und mit denen Sie verschiedene Verbindungsregeln festlegen können. Die meisten modernen Desktop-Webbrowser können sie problemlos lesen. Ich habe die gleichen Einstellungen in Internet Explorer und Firefox vorgenommen.

Eine minimale PAC-Datei, die Sie immer an den Proxyserver proxy.companyname an Port 81 sendet :

function FindProxyForURL(url, host)
{
     return "PROXY proxy.companyname:8080";
}

Und ein etwas komplizierteres Beispiel für eine PAC-Datei, in der überprüft wird, in welchem ​​Netzwerk Sie sich befinden, indem überprüft wird, welchen IP-Adressbereich Sie ausgewählt haben. In diesem Beispiel erhalten alle Client-PCs in Ihrem Unternehmen über DHCP eine IP-Adresse im Bereich 10.10. * Und greifen über den Proxyserver proxy.companyname auf Port 81 auf das Internet zu .

//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.


function FindProxyForURL(url, host)
  {
    var ip = myIpAddress();
    var debug = "";

    if(debug)
    {
        alert("proxy.pac IP=" + ip + "  HOST=" + host + "  URL=" + url);
    }

      // All client PCs on the internal network will have a 10.10.x.x address, check if I have this
     if (shExpMatch(ip, "10.10.*"))
     {
             if(debug)
          {
                 alert("Proxy for " + url);
             }
     return "PROXY proxy.companyname:81";
     }

     // If you have a different IP then this isn't the company network
     else 
     {
             if(debug)
          {
      alert("You are not at CompanyName so going direct for " + url);
             } 
            return "DIRECT";
     }

  }

Das Skript hat auch einen Debug-Modus, mit dem Sie testen können, ob es funktioniert und welcher Modus (PROXY oder DIRECT connect) Ihrer Meinung nach Ihre aktuelle Verbindung sein sollte.

Sie können auch ein komplexeres Skript erstellen, das prüft, ob sich der Server, mit dem Sie eine Verbindung herstellen, in Ihrem internen Unternehmensnetzwerk befindet (und daher eine DIREKTE Verbindung wünscht, obwohl sich Ihr PC derzeit im Unternehmensnetzwerk befindet). d Sie können alles, was Sie normalerweise in das Feld für Proxy-Ausnahmen des IE eingeben, folgendermaßen erweitern:

//Turn debug mode on by setting debug variable to any non-empty string
//Note that "" is an empty string, and that "0", "1" & "test" are not empty strings.


function FindProxyForURL(url, host)
  {
    var ip = myIpAddress();
    var debug = "";

    if(debug)
    {
        alert("proxy.pac IP=" + ip + "  HOST=" + host + "  URL=" + url);
    }

    // Detect if trying to connect to internal/intranet host
    if(isPlainHostName(host) || dnsDomainIs(host, "intranet.companyname"))
    {
 if(debug)
 {
            alert("Direct for " + url);    
     }
    return "DIRECT";   
    }

    // Detect if trying to connect to URLs on the internal network via internal DNS suffix or IP address
    if(shExpMatch(url, "*.companyname") || shExpMatch(host, "10.100.*"))
    {
 if(debug)
 {
     alert("Direct for " + url);
 } 
        return "DIRECT";    
    } 

     // All client PCs on the internal network will have a 10.10.x.x address, check if I have this
     if (shExpMatch(ip, "10.10.*"))
     {
             if(debug)
          {
                 alert("Proxy for " + url);
             }
     return "PROXY proxy.companyname:8080";
     }

     // If you have a different IP then this isn't the company network
     else 
     {
             if(debug)
          {
      alert("You are not at CompanyName so going direct for " + url);
             } 
            return "DIRECT";
     }

  }

Verwenden Sie diese Datei, indem Sie sie irgendwo auf dem Laufwerk C Ihres PCs als proxy.pac speichern. Wechseln Sie dann für Internet Explorer zu Extras -> Optionen (oder Systemsteuerung -> Internetoptionen), und klicken Sie auf die Registerkarte Verbindungen und dann auf die Schaltfläche LAN-Einstellungen . Entfernen Sie nun das Häkchen aus dem Kästchen "Proxy-Server verwenden" und setzen Sie stattdessen ein Häkchen in "Automatisches Konfigurationsskript verwenden" und geben Sie die Adresse Ihrer PAC-Datei mit einer Datei ein: // URL wie file://C:/proxy.pac.

IE-Proxy-Einstellungen

Alternativ gehen Sie für Firefox zu Extras -> Optionen, klicken Sie auf die Registerkarte Erweitert, klicken Sie auf die Registerkarte Netzwerk, klicken Sie auf die Schaltfläche Einstellungen, klicken Sie auf die Einstellung "URL für automatische Proxykonfiguration" und verwenden Sie erneut eine Datei: /// URL (beachten Sie, dass in Firefox sind 3 Schrägstriche nach dem Doppelpunkt, z file:///C:/proxy.pac.

Firefox-Proxy-Einstellungen


Beachten Sie, dass Internet Explorer 11 dieses Verhalten geändert hat und Sie jetzt keine PAC-Datei von einer URL 'file: //' laden können. Sie müssen eine URL 'HTTP: //' oder 'HTTPS: //' verwenden.

In Internet Explorer 11 hat das WinINET-Team die WinINET-Unterstützung für dateibasierte Skripte deaktiviert, um die Interoperabilität zwischen Netzwerkstapeln zu fördern. Unternehmen wird empfohlen, ihre Proxy-Konfigurationsskripts stattdessen auf einem HTTP- oder HTTPS-Server zu hosten.

Es gibt eine Problemumgehung, durch die diese Funktion für den Moment wieder aktiviert werden kann. Es wird jedoch davon abgeraten, sie zu verwenden, da zukünftige Updates dies ebenfalls deaktivieren könnten.

Als vorübergehende Problemumgehung kann dieser Block entfernt werden, indem der folgende Registrierungsschlüssel festgelegt wird:

Schlüssel: HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \
Wert: EnableLegacyAutoProxyFeatures
Typ: REG_DWORD
Daten: 1

Beachten Sie, dass dies nur eine vorübergehende Maßnahme sein sollte, da dieser Block aus guten Gründen eingeführt wurde und das Entfernen des Blocks Ihre WinHTTP-basierten Anwendungen nicht auf magische Weise repariert.

Beachten Sie auch, dass Sie nach der Änderung von IE11 die Adresseinstellung für Ihr Auto-Config-Skript ändern müssen, da IE 11 nur eine Syntax dafür akzeptiert (siehe den unteren Teil des verlinkten Artikels im IE Internals-Blog unten).

Wie bereits erwähnt, ist es jedoch unwahrscheinlich, dass diese Umgehung des Registrierungsschlüssels in zukünftigen Versionen von Internet Explorer weiterhin funktioniert. Daher ist es besser, eine Möglichkeit zu finden, die PAC auf einem Webserver zu speichern. Der in Windows integrierte IIS-Webserver würde funktionieren, und es gibt einige wenige, die sich auch für die Installation auf Ihrem Laptop eignen.

Weitere Informationen finden Sie im IE Internals-Blogeintrag Grundlegendes zur Webproxykonfiguration .

GAThrawn
quelle
Das ist ziemlich cool, bis Sie mit demselben privaten IP-Bereich, den ich gerade in meinem Haus verwende, in ein anderes öffentliches drahtloses Netzwerk gelangen. :)
dannysauer
Netter Post. Gut geschrieben.
Jeff F.
1
Dies funktioniert nicht in Windoes 8.1
Milind R
3
Um den obigen Kommentar von @ MilindR zu erweitern, befinden sich PAC-Dateien immer noch in Windows 8 / IE11. Sie müssen jedoch Ihre PAC-Datei von einer HTTP- oder HTTPS-URL laden. Sie können nicht einfach einen dateibasierten Pfad oder UNC verwenden. Weitere Informationen vom Internet Explorer-Team erhalten Sie hier. Informationen zur Webproxy-Konfiguration und diese Antwort wurden aktualisiert, um die Änderungen von IE11 widerzuspiegeln.
GAThrawn
4

Verwenden Sie Free IP Switcher 1.0

Alt-Text

Beschreibung:

Wenn ein mobiler Benutzer in ein anderes Netzwerk wechselt, muss er bestimmte IP-Adressen, Gateway-Adressen, Subnetzmasken, Proxy-Server, Standarddrucker usw. in eine bestimmte Netzwerkumgebung ändern. Dazu muss er sich die TCP / IP-Einstellungsinformationen jedes Netzwerks merken. Außerdem muss er den Computer neu starten, um ihn auf das System anzuwenden und auf das Internet zuzugreifen.

Verschwenden Sie keine Zeit damit, die Netzwerkeinstellungen des Computers jedes Mal neu zu konfigurieren, wenn Sie Ihren Standort ändern. Free IP Switcher ist die perfekte Lösung für Sie. Mit einem Klick und ohne Neustart wird zwischen vorkonfigurierten Netzwerkeinstellungen gewechselt. Mit Free IP Switcher können Sie automatisch alle Netzwerkeinstellungen auf Ihrem PC ändern: IP-Adresse, Netzwerkmasken, Standard-Gateway, DNS-Server, WINS-Server, Proxy-Einstellungen, Standarddrucker und mehr.

Eigenschaften:

  • Schalten Sie die IP-Netzwerkeinstellungen "on the fly" um, ohne neu zu starten
  • Wechseln Sie zu den Proxy-Server-Einstellungen von Internet Explorer
  • Wechseln Sie Ihren Standarddrucker
  • Wechseln Sie Ihren Computernamen und Ihre Arbeitsgruppe
  • Importieren Sie die aktuellen Netzwerkeinstellungen in die Einstellung
  • Unterstützung für Taskleistensymbole, Autostart mit Windows
  • 100% Spyware KOSTENLOS, KEINE Spyware, Adware oder Viren enthalten
Ivo Flipse
quelle
2
Ich kann nicht glauben, dass etwas so Nützliches wie Netzwerkkonfigurationsprofile noch nicht Teil von Windows 7 ist. Ubuntu hat es, Mac OS X hat es. . .
Dreamlax
Ich weiß, dass Dell ein solches Tool für mein Latitude erstellt hat, aber ich mochte es nicht :-(
Ivo Flipse
Die Download-Version funktioniert nicht für Windows /
Hakan Forss
@IvoFlipse Kannst du dich erinnern, wie es hieß?
Matthys Du Toit
@ MatthysDuToit Ich kann nicht
Ivo Flipse
3

Sie haben andere (kostenpflichtige) Alternativen zum Umschalten von Netzwerkkonfigurationen, z. B. Mobile Net Switch oder NetSetMan

t3mujin
quelle
+1 für NetSetMan, die einfachste Möglichkeit, den Proxy im IE zu ändern
miky