Ein Proxy-Server ist eine Sonderform eines Webservers: Er steht zwischen dem Useragent und dem Zielsystem. Ein Proxy-Server ist also Webserver und UserAgent zugleich. Außerdem sind die meisten Proxy-Server als Cache konfiguriert, was die Performance erhöht. Proxy-Server können hintereinander kaskadiert und auch als Virenscanner eingesetzt werden.
Weitere Einsatzgebiete sind Gateway-Lösungen für die Protokolle HTTP und HTTPS.
Wer einen Proxy-Server benutzt, erhält nach außen hin die IP-Adresse des Proxy-Servers. Wenn mehrere Benutzer denselben Proxy-Server benutzen, haben auch mehrere Benutzer zur gleichen Zeit dieselbe IP-Adresse.
Für die Browser (Internet-Explorer, Mozilla usw.) gibt es verschiedene Möglichkeiten, einen Proxy-Server einzusetzen: Entweder wird für das entsprechende Protokoll ein Proxy-Server fest eingetragen, oder der Proxy-Server wird von einer automatischen Konfigurationsdatei geliefert.
Im Folgenden ist eine solche Konfigurationsdatei, die proxy.pac beschrieben. Hauptanliegen dieser speziellen Datei ist die Auslieferung eines zufälligen Proxy-Servers für das Protokoll HTTP. Requests über das Protokoll HTTPS sollen direct, also ohne Proxy-Server erfolgen, ebenso auch Requests auf den lokalen Webserver.
// File: proxy.pac
// Proxy-Server zur Auswahl bei T-online und Congster
var proxies = new Array("217.237.148.22:80", "217.237.148.70:80", "217.237.148.102:80",
"217.237.149.142:80", "217.237.149.205:80", "217.237.150.51:80", "217.237.150.115:80",
"217.237.150.188:80", "217.237.150.205:80", "217.237.151.51:80", "217.237.151.115:80",
"217.237.151.142:80", "217.237.151.205:80");
function zufallProxy(){
var a = 0;
var b = proxies.length - 1;
a = rand(a, b);
return("PROXY "+proxies[a]);
}
// Das ist die Hauptfunktion
function FindProxyForURL(url, host){
var proxy = zufallProxy();
if(url.substring(0, 5) == "https:"
|| isInNet(host, "127.0.0.1" , "255.255.255.255")){ return "DIRECT" }
else{ return proxy }
}
// min, max eingeschlossen, aus SELFHTML (Artikel)
function rand (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
Das Script erklärt sich weitestgehend von selbst. Herzstück ist die Funktion FindProxyForURL(url, host), die zwei verschiedene Rückgabewert hat:
return "DIRECT"; // kein Proxy-Server wird verwendet return "PROXY ip.ip.ip.ip:port"; // Proxy-Server
Diese leicht anzupassende Konfigurationsdatei wird über einen Web-Server, in diesem Fall ist das ein lokaler Webserver, verfügbar gemacht.
Im Menu "Edit/Preferences" findet sich der Dialog, über welchen die Datei für die automatische Konfigurationsdatei einzustellen ist.
Der Reload-Button erlaubt es, die proxy.pac neu in den Browser zu lagen, ohne dass dieser neu gestartet werden muss.
Siehe Screen-Shot linksstehend. Sollte für Internet-Explorer die Konfigurationsdatei neu geladen werden, ist dieser neu zu starten.
Hinsichtlich der zufälligen Auswahl des Proxy-Servers verhält sich der IE anders als Mozilla. Während der Mozilla tatsächlich bei jedem Request einen anderen Proxy-Server verwendet, macht das der IE erst nach einem Neustart.
Zum Testen der Remote-IP-Addresse können Sie diese URL benutzen und zum Testen einer allgemeinen Proxykonfiguration im Browser bietet sich dieses Tool hier an.
Last-Modified: Tue, 22 Jun 2010 19:50:29 GMT