Proxy-PAC: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | =Was ist eine | + | =Was ist eine PAC-Datei= |
| − | * | + | *Anhand einer Proxy-Auto-Config-Datei (PAC-Datei) kann ein Webbrowser automatisch den passenden Proxyserver für eine gewünschte URL finden. |
=Beispiel= | =Beispiel= | ||
*Eine einfache Konfiguration, bei der alle Clients über den Proxy gehen und alles erlaubt wird. | *Eine einfache Konfiguration, bei der alle Clients über den Proxy gehen und alles erlaubt wird. | ||
| Zeile 22: | Zeile 22: | ||
return "PROXY nagus.xinux.lan:3128"; | return "PROXY nagus.xinux.lan:3128"; | ||
} | } | ||
| + | </pre> | ||
| + | *In dieser Konfiguration werden wieder alle interne Anfragen direkt zum Zielort geschickt, dazu werden noch alle Anfragen auf einen Hostname direkt zum Host geschickt. Befindet sich aber eine Domain hinten dran, wird der Weg wieder über den Proxy geleitet. In diesem Beispiel wird noch jede Anfrage auf die Domain "xinux.lan" direkt zum Ziel geschickt, ohne den Umweg über den Proxy. | ||
| + | <pre> | ||
| + | function FindProxyForURL(url, host) { | ||
| + | if (isPlainHostName(host) || dnsDomainIs(host, ".xinux.lan")) { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | if (isInNet(host, "10.0.0.0", "255.0.0.0.0")) { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | if (isInNet(host, "192.168.0.0", "255.255.0.0")) { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | if (isInNet(host, "172.16.0.0", "255.240.0.0")) { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | return "PROXY nagus.xinux.lan:3128"; | ||
| + | } | ||
| + | </pre> | ||
| + | *Bei der folgenden Konfiguration werden wieder die vorherigen Einstellungen genutzt, dazu jetzt noch eine Einstellung, welche dafür sorgt, dass die Clients nicht alle auf einen Proxy geschickt werden, sondern ein zweiter Proxy mit ins Spiel gebracht wird. Diese Funktion hat folgenden Sinn. Alle Clients mit einem ungeraden Hostanteil werden über Proxy1 geschickt, hingegen Clients mit einem geraden Hostanteil werden über Proxy2 geschickt. Somit haben wir eine Hochverfügbarkeit des Proxys und einen "load balancing", da die eine Hälfte über Proxy1 geht und die andere Hälfte über Proxy2. | ||
| + | <pre> | ||
| + | function FindProxyForURL(url, host) | ||
| + | { | ||
| + | var worf="10.80.0.2" | ||
| + | var nagus="10.80.0.3" | ||
| + | var myip=myIpAddress() | ||
| + | var ipbits=myip.split(".") | ||
| + | var myseg=parseInt(ipbits[3]) | ||
| + | if(myseg==Math.floor(myseg/2)*2) | ||
| + | { | ||
| + | var proxone=worf | ||
| + | var proxtwo=nagus | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | var proxone=nagus | ||
| + | var proxtwo=worf | ||
| + | } | ||
| + | |||
| + | if (isPlainHostName(host) || dnsDomainIs(host, ".xinux.lan")) { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | if (isInNet(host, "10.0.0.0", "255.0.0.0.0")) { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | if (isInNet(host, "192.168.0.0", "255.255.0.0")) { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | if (isInNet(host, "172.16.0.0", "255.240.0.0")) { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | return "PROXY "+proxone+":3128; PROXY "+proxtwo+":3128" ; | ||
| + | } | ||
| + | </pre> | ||
| + | *Um eine bestimmte IP Adresse einen bestimmten Proxy zuzuweisen, benutzen wir diese Funktion. | ||
| + | <pre> | ||
| + | function FindProxyForURL(url, host) | ||
| + | { | ||
| + | if (myIpAddress() == "10.81.3.1") { | ||
| + | return "PROXY nagus.xinux.lan:3128"; | ||
| + | } | ||
| + | else { | ||
| + | return "DIRECT"; | ||
| + | } | ||
| + | } | ||
</pre> | </pre> | ||
Aktuelle Version vom 20. Juni 2018, 10:20 Uhr
Was ist eine PAC-Datei
- Anhand einer Proxy-Auto-Config-Datei (PAC-Datei) kann ein Webbrowser automatisch den passenden Proxyserver für eine gewünschte URL finden.
Beispiel
- Eine einfache Konfiguration, bei der alle Clients über den Proxy gehen und alles erlaubt wird.
function FindProxyForURL(url, host) {
return "PROXY nagus.xinux.lan:3128";
}
- Bei dieser Konfiguration, werden alle interne Anfragen direkt zum Zielort geschickt, dass heißt, alles was aus dem Bereich 192.168.0.0/16 10.0.0.0/8 und 172.16.0.0/12 kommt, wird nicht über den Proxy geleitet.
function FindProxyForURL(url, host) {
if (isInNet(host, "10.0.0.0", "255.0.0.0.0")) {
return "DIRECT";
}
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
return "DIRECT";
}
if (isInNet(host, "172.16.0.0", "255.240.0.0")) {
return "DIRECT";
}
return "PROXY nagus.xinux.lan:3128";
}
- In dieser Konfiguration werden wieder alle interne Anfragen direkt zum Zielort geschickt, dazu werden noch alle Anfragen auf einen Hostname direkt zum Host geschickt. Befindet sich aber eine Domain hinten dran, wird der Weg wieder über den Proxy geleitet. In diesem Beispiel wird noch jede Anfrage auf die Domain "xinux.lan" direkt zum Ziel geschickt, ohne den Umweg über den Proxy.
function FindProxyForURL(url, host) {
if (isPlainHostName(host) || dnsDomainIs(host, ".xinux.lan")) {
return "DIRECT";
}
if (isInNet(host, "10.0.0.0", "255.0.0.0.0")) {
return "DIRECT";
}
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
return "DIRECT";
}
if (isInNet(host, "172.16.0.0", "255.240.0.0")) {
return "DIRECT";
}
return "PROXY nagus.xinux.lan:3128";
}
- Bei der folgenden Konfiguration werden wieder die vorherigen Einstellungen genutzt, dazu jetzt noch eine Einstellung, welche dafür sorgt, dass die Clients nicht alle auf einen Proxy geschickt werden, sondern ein zweiter Proxy mit ins Spiel gebracht wird. Diese Funktion hat folgenden Sinn. Alle Clients mit einem ungeraden Hostanteil werden über Proxy1 geschickt, hingegen Clients mit einem geraden Hostanteil werden über Proxy2 geschickt. Somit haben wir eine Hochverfügbarkeit des Proxys und einen "load balancing", da die eine Hälfte über Proxy1 geht und die andere Hälfte über Proxy2.
function FindProxyForURL(url, host)
{
var worf="10.80.0.2"
var nagus="10.80.0.3"
var myip=myIpAddress()
var ipbits=myip.split(".")
var myseg=parseInt(ipbits[3])
if(myseg==Math.floor(myseg/2)*2)
{
var proxone=worf
var proxtwo=nagus
}
else
{
var proxone=nagus
var proxtwo=worf
}
if (isPlainHostName(host) || dnsDomainIs(host, ".xinux.lan")) {
return "DIRECT";
}
if (isInNet(host, "10.0.0.0", "255.0.0.0.0")) {
return "DIRECT";
}
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
return "DIRECT";
}
if (isInNet(host, "172.16.0.0", "255.240.0.0")) {
return "DIRECT";
}
return "PROXY "+proxone+":3128; PROXY "+proxtwo+":3128" ;
}
- Um eine bestimmte IP Adresse einen bestimmten Proxy zuzuweisen, benutzen wir diese Funktion.
function FindProxyForURL(url, host)
{
if (myIpAddress() == "10.81.3.1") {
return "PROXY nagus.xinux.lan:3128";
}
else {
return "DIRECT";
}
}