IE 11-Fehler mit PuTTY-basiertem SOCKS5-Proxy

540
Dave

Ich habe einen PuTTY-basierten SOCKS5-Proxy wie folgt eingerichtet:

IE 11-Fehler mit PuTTY-basiertem SOCKS5-Proxy

Ich habe IE11 so konfiguriert, dass dieser Proxy wie folgt verwendet wird:

IE 11-Fehler mit PuTTY-basiertem SOCKS5-Proxy

Ich habe Firefox 52.7.3 (32-Bit) auch so konfiguriert, dass dieser Proxy auf die gleiche Weise verwendet wird:

IE 11-Fehler mit PuTTY-basiertem SOCKS5-Proxy

Der Inhalt von proxyConfig.pac lautet wie folgt:

function FindProxyForURL(url, host) { if ((url.indexOf(".mydomain.local") >= 1) ) { return "SOCKS5 127.0.0.1:1080"; } return "DIRECT"; } 

Ich kann Websites entweder mit IE oder Firefox erreichen.

Intranetseiten, die sich nicht unter mydomain.local befinden, kann ich entweder mit IE oder Firefox erreichen.

Ich kann mit Firefox Intranetseiten erreichen, die sich unter mydomain.local befinden.

Aber hier ist das Problem: Ich kann keine Intranetseiten erreichen, die mit IE unter mydomain.local liegen. Am Beispiel von host.mydomain.local erhalte ich diesen Fehler:

IE 11-Fehler mit PuTTY-basiertem SOCKS5-Proxy

host.mydomain.local löst keine Auflösung in eine IP-Adresse auf der nahen Seite des Proxys auf, weder über die lokale Hosts-Datei noch über DNS. Es wird jedoch zu einer IP-Adresse über DNS auf der anderen Seite des Proxys aufgelöst.

Eine Paketerfassung zeigt, dass der IE11 versucht, host.mydomain.local direkt (dh auf der nahen Seite des Proxys) aufzulösen, anstatt den Proxy-Server dies tun zu lassen. Firefox funktioniert, weil es nicht versucht, den Hostnamen auf der lokalen Seite aufzulösen. Der Proxy-Server kann dies tun.

Wenn ich meine lokalen hosts-Datei so bearbeite, dass host.mydomain.local auf der nahen Seite des Proxys das löst, was auf der anderen Seite des Proxys aufgelöst werden würde, erhalte ich immer noch einen Fehler. Obwohl der Fehler viel länger dauert. Ich glaube, das liegt daran, dass der Verbindungsfehler jetzt auftritt, weil nach einiger Zeit keine Antwort empfangen wird (für die es mehrere Ursachen geben kann) und nicht wegen eines Namensauflösungsfehlers (der sehr schnell auftritt).

Gibt es eine Möglichkeit, IE11 zu zwingen, den Hostnamen nicht aufzulösen und dem Proxy-Server stattdessen zu erlauben?

Wenn nicht, gibt es einen anderen Weg, um dieses Problem zu lösen?

UPDATE 1

Ich hatte vergessen, dass ich dieses Problem schon einmal getroffen hatte, und hatte festgestellt, dass der IE11 keine serverseitige Namensauflösung von SOCKS5 implementiert. Mit dieser Einstellung...

Warum kann der Internet Explorer keine Verbindung herstellen, wenn ich die IP-Adresse von host.mydomain.local in meine Datei "local hosts" eingebe ?

Die betreffende IP-Adresse wird auf der lokalen Seite nicht weitergeleitet. Sollte der IE dennoch nicht die HTTP-Anforderung an diese IP-Adresse an den Proxy weiterleiten (wo die fragliche IP-Adresse irgendwo weiterleitet)?

UPDATE 2

Eine Paketerfassung zeigt, dass der IE niemals die HTTP-Anforderung stellt. Das anfängliche TCP-SYN wird direkt an die Ziel-IP-Adresse gesendet (die, wie gesagt, auf der lokalen Seite nirgendwo routet). Es wird nicht versucht, diese TCP-Verbindungsanfrage über den Proxy zu senden.

UPDATE 3

Ich habe versucht, den Browser so zu konfigurieren, dass der Proxy auf andere Weise verwendet wird:

IE 11-Fehler mit PuTTY-basiertem SOCKS5-Proxy

Jetzt geht alles über den Proxy, nicht nur Anfragen an mydomain.local .

Nachdem dies geschehen ist, kann ich jetzt Hosts auf mydomain.local erreichen, aber Firewall-Beschränkungen verhindern, dass ich Intranetseiten (über den Proxy) erreicht, die nicht unter mydomain.local oder Internet-Sites liegen.

Diese Firewall-Einschränkungen sind natürlich nicht die Schuld des IE.

Es zeigt jedoch die Probleme, die auftreten können, wenn Sie versuchen, den IE mit einem SOCKS5-Proxy zu verwenden.

Es scheint, dass es keine gute Lösung dafür gibt, wenn man wirklich IE verwenden möchte.

0

1 Antwort auf die Frage

0
Dave

Es scheint, dass das Beste, was getan werden kann, die Verwendung der lokalen SSH-Portweiterleitung ist, anstatt einen SOCKS5-Proxy zu verwenden.

Hier ist meine lokale Hostdatei:

127.24.0.1 host1.mydomain.local 127.24.0.2 host2.mydomain.local 127.24.0.3 host3.mydomain.local 

So richten Sie die lokale Portweiterleitung ein:

Beachten Sie, dass aufgrund der Notwendigkeit, Port 80 erneut zu verwenden (jeder Host, den ich erreichen möchte, HTTP an Port 80 bereitstellt), dass für jeden Zielhost eine andere localhost-IP-Adresse verwendet werden muss. Windows unterstützt dies.

Meine Erinnerung ist, dass Linux die Verwendung mehrerer localhost-IP-Adressen nicht unterstützt. Wenn ich mich recht erinnere, ändert Linux jede localhost-Adresse (dh irgendetwas in 127.0.0.0/8) auf 127.0.0.1. Sobald der SSH-Client versucht, den zweiten Port-Forwarding-Listener zu erstellen, tritt daher ein Fehler auf, weil versucht wurde, Port 80 an dieselbe IP-Adresse (dh 127.0.0.1) zu binden.