Simulieren Sie die Manipulation der etc / hosts-Datei in Google Chrome

30

Wie kann ich Chrome so einrichten, dass es auf die Suche nach Hostnamen lokal verweist und nicht auf die Standarddatei etc / hosts?

Beim Debuggen einer Website ist es manchmal hilfreich, Einträge in C: \ Windows \ system32 \ drivers \ etc \ hosts einzurichten , die bestimmte Domänen durch localhost ersetzen. Auf diese Weise kann ich spontan Versionen von Websites oder Domänen testen, die dies möglicherweise tun Konflikt mit Live-tatsächlichen Websites.

Kann ich Google Chrome so einrichten, dass dieser Vorgang simuliert und vereinfacht wird?

Ich werde die Browser-Instanz nicht dahingehend ändern, dass sie sich so verhält, als ob etc / hosts geändert worden wäre, obwohl selbst dies ein zu großes Sicherheitsrisiko in einer Erweiterung darstellen könnte.

ripper234
quelle
Bitte starte
Ali

Antworten:

13

Ich habe gerade die Host Switch Plus Chrome Extension gefunden, die genau das macht;)

Mettjus
quelle
Host Switch Plus funktioniert bei mir und vielen anderen nicht.
Zylstra
1
Host Switch Plus macht genau das NICHT. Es ändert Proxy. Das Ziel ist es jedoch, die Domain-IP zu ändern. (DNS-Server
emulieren
Funktioniert bei mir nicht, sorry.
Serzhan Akhmetov
7

Eine Möglichkeit, Ihr eigentliches Ziel zu erreichen, sind keine Chrome-Erweiterungen oder gar Chrome. Auf diese Weise richten Sie einen intelligenten Proxy-HTTP-Server ein, richten Chrome darauf und fügen dem Proxy-Server, der die URLs im Hintergrund neu schreibt, Überschreibungsregeln hinzu.

Es gibt viele Leute, die dies tun, mit verschiedenen Proxy-HTTP-Servern - zu viele, um jede in einer Antwort hier im Detail zu behandeln. Dies geschieht zum Zweck des Zappens von Werbung, Web-Bugs und dergleichen, aber das Prinzip und der Mechanismus sind identisch mit dem, was Sie tun möchten. Sie möchten, dass der WWW-Browser eine bestimmte URL wie gewohnt abruft, der tatsächlich empfangene Inhalt jedoch einer anderen (lokalen oder anderen) URL entspricht. Das einzige, was der WWW-Browser wissen muss, ist, dass er über einen Proxyserver mit dem Internet kommuniziert.

Ein Beispiel finden Sie im Ad Zapper bei SourceForge . Dies ist ein Perl-Skript, das in Verbindung mit dem Squid-Proxy-HTTP-Server zum schnellen Umschreiben von URLs auf dem Proxy-Server verwendet wird. Wie Sie der Konfigurationsdatenbank entnehmen können, haben die Benutzer diesen Mechanismus für eine Vielzahl von Zwecken eingesetzt, von der Sicherstellung, dass immer die "druckbaren" Artikel in Nachrichtendiensten angezeigt werden, bis hin zur Beseitigung der randomisierten Weiterleitungen von Werbung auf Websites mit Internetpornografie.

Beachten Sie, dass dies weitaus besser ist als das, was Sie mit der hostsDatei tun. Dies ist ein ungeeigneter Mechanismus für die Manipulation des WWW-Dienstes. hostsBefasst sich nur mit Name → Adressensuchen, sammelt alles andere (außer dem WWW-Browser), das Name → Adressensuchen erfordert, und erfordert (wie Sie wahrscheinlich bereits wissen), dass jeder umgeschriebene Hostname zusätzlich als virtueller Host eingerichtet wird der HTTP-Zielinhaltsserver. Ein solcher Proxy-HTTP-Server zum Umschreiben behandelt dagegen URLs und wirkt sich nur auf HTTP und die dafür konfigurierten WWW-Browser aus. So können Sie beispielsweise nur die JavaScript-URLs neu schreiben und alles andere von derselben WWW-Site in Ruhe lassen. Schreiben Sie eine ganze Reihe von Hostnamen in nur einen. und (noch weitere) Mustervergleiche durchführen. (Beachten Sie, dass die Konfigurationsdatenbank von Ad Zapper genau solche Fälle enthält.) Sie können beispielsweise festlegen, dass ein WWW-Browser die Welt über den Umschreibungs-Proxy und ein anderer gleichzeitig direkt auf einem einzelnen Computer anzeigt.

JdeBP
quelle
Ein zusätzlicher Vorteil gegenüber einer Chrome-Erweiterung - sie funktioniert über mehrere Browser hinweg! Im Moment verwende ich noch die Hosts-Datei, aber ich werde in Betracht ziehen, zu einem Proxy zu wechseln, wenn der tatsächliche Bedarf entsteht.
Ripper234
4

Ich habe HostAdmin religiös genutzt (und benutze es auch heute noch) , aber es war immer mühsam , den Cache zu leeren oder jedes Mal ein neues Inkognito-Fenster zu öffnen. Deshalb habe ich letztes Jahr eine Chrome-Erweiterung für mich entwickelt, um in einer ähnlichen Situation zu helfen Ich habe kürzlich eine sehr grobe Version davon im Chrome Web Store veröffentlicht, sie heißt LiveHosts .

Das Entscheidende dabei ist, dass @JdeBP zwar richtig ist und das Einrichten eines Proxys die richtige Lösung wäre, dies jedoch häufig nicht möglich ist. Eine Chrome-Erweiterung kann jedoch nicht genau nachvollziehen, was passiert, wenn Sie die Hostdatei ändern. LiveHosts führt daher folgende Aktionen aus:

  • Ermöglicht das Einrichten mehrerer Hostnamen- / IP-Einträge.
  • Anforderungen an einen der definierten Hostnamen erkennen;
  • Leiten Sie die Anforderung mit dem entsprechenden HTTP-Host-Header an die gewünschte IP weiter.
  • Fügen Sie einen visuellen (und hässlichen, wie ich zugeben werde) Verweis in die URL der Adressleiste ein, der ungefähr so ​​aussieht http://127.0.0.1/www.example.com/whateverelse.
  • Ermöglichen Sie verschiedene Host / IP-Pairings auf verschiedenen Registerkarten gleichzeitig.

Es ist nicht schön, aber es ist gut genug für den Standard-Webentwickler, der versucht, schnell zwischen Umgebungen zu wechseln. Es gibt natürlich ein paar Einschränkungen:

  • Abhängig vom Server können Teile einer Webseite, die auf die Site-URL verweisen (wie die Attribute href und src), vom Original abweichen.
  • window.location hat einen anderen Wert, der möglicherweise JavaScript-Snippets auslöst;
  • Die meisten Cross-Origin-Anfragen funktionieren nicht.
Aioros
quelle
0

Das Virtual Hosts- Plugin ist das einzige, das für mich wie erwartet funktioniert.

Greifen Sie auf virtuelle Hosts eines Servers zu, ohne dass eine Hostumleitung oder DNS erforderlich ist.

JDL
quelle
2
Für mich scheint diese Erweiterung eine clientseitige Umleitung auf die IP-Adresse durchzuführen, was keineswegs mit einer Änderung der Hosts-Datei identisch ist.
Jeff Ward