PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Squid Proxy ignoriert proxy.pac beim Zuggriff über VPN Tunnel



bla!zilla
09.02.06, 10:33
Hi,

ich habe hier ein interessantes Problem. Ich nutze unter Windows XP SP2 Firefox 1.5.0.1 als Browser. Über einen OpenVPN Tunnel würde ich diesen Proxy gerne nutzen. Im LAN habe ich damit überhaupt kein Problem, aber über den OpenVPN Tunnel. Über eine URL zieht sich Firefox bei jedem Start eine proxy.pac von meinem Server. Die URL ist wie folgt aufgebaut:

http://FQDN meines Servers/proxy.pac


Der FQDN ist der interne DNS Name der Maschine. Den Namen kann ich wunderbar auflösen, trage ich die URL im Browser ein bietet mir Firefox die Datei zum download an (alles über den Tunnel wohlgemerkt!). Wenn ich den Namen oder die IP samt Port direkt als Proxy eintrage (unter Einstellungen / Allgemein / Verbindung-Einstellungen / Manuelle Proxy-Konfiguration), dann nutzt er den Proxy auch. Ich kann darüber surfen, alles wird geloggt usw. Nur bei der automatischen Konfiguration über die URL nicht.

Hier der Inhalt der proxy.pac



//
// Proxy Configuration Script
//

function FindProxyForURL(url, host) {

// Wenn nur ein hostname (ohne domain) angegeben wurde, dann DIRECT
if ( isPlainHostName(host) ) {
return "DIRECT";
}

// Loopback ist immer lokal, also DIRECT
if (localHostOrDomainIs (host, "127.0.0.1")
|| dnsDomainIs(host, "localhost")
|| dnsDomainIs(host, ".meinedomain.site") )
|| dnsDomainIs(host, "<spezieller host>") {
return "DIRECT";
}

// Wenn keine der o.g. Bedingungen Wahr ist, dann Linux-PROXY
return "PROXY server.meinedomain.site:3128";

heatwalker
09.02.06, 11:04
Müsste das nicht in etwa so aussehen???



//
// Proxy Configuration Script
//

function FindProxyForURL(url, host) {

// Wenn nur ein hostname (ohne domain) angegeben wurde, dann DIRECT
if ( isPlainHostName(host) ) {
return "DIRECT";
}

// Loopback ist immer lokal, also DIRECT
else if (localHostOrDomainIs (host, "127.0.0.1")
|| dnsDomainIs(host, "localhost")
|| dnsDomainIs(host, ".meinedomain.site") )
|| dnsDomainIs(host, "<spezieller host>") {
return "DIRECT";
}

// Wenn keine der o.g. Bedingungen Wahr ist, dann Linux-PROXY
else return "PROXY server.meinedomain.site:3128";

bla!zilla
09.02.06, 11:44
Ich habe es mal angepasst, brachte aber nix. Interessant ist: Firefox holt sich die Datei, das sehe ich im access_log meines Webservers.

heatwalker
09.02.06, 12:08
Hier ist mal meine proxy.conf.

Die sieht zwar etwas anders aus, aber funktioniert.

Eventuell siehst du hier was, das mir bei dir entgeht. :o


function FindProxyForURL(url, host)
{
if(isPlainHostName(host))
{
return "DIRECT";
}

else if
(dnsDomainIs(host,".home.localhome.de"))
{
return "DIRECT";
}

else if
(isInNet(host,"192.168.1.10","255.255.255.0"))
return "DIRECT";

else
return "PROXY 192.168.1.1:3128";
}

Windoofsklicker
09.02.06, 12:12
Bei den erste beiden Beispielen fehlt am Ende die }, oder?

heatwalker
09.02.06, 12:15
@windowsklicker: Du hast recht, das fehlt auf jeden Fall. :D

bla!zilla
09.02.06, 12:17
Hier ist mal meine proxy.conf.

Die sieht zwar etwas anders aus, aber funktioniert.

Eventuell siehst du hier was, das mir bei dir entgeht. :o



Danke. Angepasst, getestet und für gut befunden. :) Ich habe meines aber trotzdem gefixt. Ist nun auch etwas kompakter:



//
// Proxy Configuration Script
//

function FindProxyForURL(url, host)

{
if (localHostOrDomainIs (host, "127.0.0.1") ||
dnsDomainIs(host, "localhost") ||
dnsDomainIs(host, ".meinedomain.site") ||
dnsDomainIs(host, "spezieller.host.org"))
return "DIRECT";
else
return "PROXY proxy.meinedomain.site:3128";
}