Symuluj manipulację plikiem etc / hosts w Google Chrome

30

Jak skonfigurować Chrome tak, aby odwoływał się do wyszukiwania nazw hostów lokalnie, a nie ze standardowego pliku etc / hosts?

Podczas debugowania strony internetowej czasami przydatne jest skonfigurowanie wpisów w C: \ Windows \ system32 \ drivers \ etc \ hosts, które zastępują niektóre domeny localhostem, co pozwala mi testować w locie wersje stron internetowych lub domen, które mogą konflikt z rzeczywistymi witrynami na żywo.

Czy mogę skonfigurować Google Chrome w sposób symulujący i upraszczający ten proces?

Nie będę modyfikować instancji przeglądarki, aby działała tak, jakby etc / hosts został zmodyfikowany, chociaż nawet to może stanowić zbyt duże zagrożenie bezpieczeństwa dla rozszerzenia.

ripper234
źródło
Oznacz
Ali,

Odpowiedzi:

13

Właśnie znalazłem rozszerzenie Host Switch Plus Chrome, które właśnie to robi;)

mettjus
źródło
Host Switch Plus nie działa dla mnie i wielu innych.
zylstra
1
Host Switch Plus robi dokładnie NIE to. Zmienia proxy. Ale celem jest zmiana adresu IP domeny. (Emuluj serwer DNS)
TEXHIK
Przepraszam, nie działa dla mnie
Serzhan Achmetow
7

Jednym ze sposobów osiągnięcia rzeczywistego celu nie są rozszerzenia Chrome, a nawet Chrome. W ten sposób można skonfigurować inteligentny serwer proxy HTTP, skierować na niego Chrome, a następnie dodać reguły przepisywania do serwera proxy, który przepisuje adresy URL pod przykryciem.

Jest wielu ludzi, którzy to robią, z różnymi serwerami proxy HTTP - zbyt wielu, aby szczegółowo opisać każdy z nich w odpowiedzi tutaj. Robią to w celu zamykania reklam, błędów sieciowych i tym podobnych, ale zasada i mechanizm są identyczne z tym, co chcesz zrobić. Chcą, aby przeglądarka WWW pobierała określony adres URL w normalny sposób, ale faktyczna treść, którą otrzymuje, jest taka sama jak innego (lokalnego lub innego) adresu URL. Przeglądarka WWW musi jedynie wiedzieć, że komunikuje się z Internetem za pośrednictwem serwera proxy.

Na przykład zobacz Ad Zapper na SourceForge . Jest to skrypt Perla, który działa w połączeniu z serwerem proxy proxy Squid w celu przepisywania adresów URL w locie na serwerze proxy. Jak widać z bazy danych konfiguracji, ludzie zastosowali jego mechanizm do szerokiego zakresu celów, od zapewnienia, że ​​zawsze można zobaczyć „artykuły do ​​wydrukowania” w serwisach informacyjnych, po pozbycie się losowych przekierowań reklamowych na internetowych stronach pornografii.

Zauważ, że jest to o wiele lepsze niż to, co robisz z hostsplikiem, który jest nieodpowiednim mechanizmem do manipulowania usługą WWW. hostszajmuje się tylko nazwami → wyszukiwaniem adresów, przechowuje wszystko inne (poza przeglądarką WWW), które musi wykonać wyszukiwanie → wyszukiwania adresów i (jak zapewne już wiesz) wymaga, aby każda przepisana nazwa hosta była dodatkowo skonfigurowana jako host wirtualny na docelowy serwer HTTP treści. Natomiast serwer proxy przepisującego tego typu HTTP zajmuje się adresami URL i wpływa tylko na HTTP i przeglądarki WWW skonfigurowane do korzystania z niego w pierwszej kolejności. Może więc wykonywać takie czynności, jak przepisywanie adresów URL JavaScript i pozostawianie wszystkiego innego z tej samej strony WWW w spokoju; przepisz cały ładunek nazw hostów do jednego; i wykonaj (jeszcze bardziej) dopasowywanie wzorców. (Zauważ, że takie przypadki występują w bazie danych konfiguracji Ad Zapper.) I można zrobić takie rzeczy, jak jedna przeglądarka WWW przeglądająca świat za pośrednictwem serwera proxy przepisującego, a inna przeglądająca go bezpośrednio, na jednym komputerze jednocześnie.

JdeBP
źródło
Dodatkowa korzyść w porównaniu z rozszerzeniem chrome - działa w różnych przeglądarkach! W tej chwili nadal używam pliku hosts, ale rozważę przejście na serwer proxy, jeśli zajdzie taka potrzeba.
ripper234,
4

Używałem (i nadal używam) HostAdmin religijnie, ale konieczność opróżniania pamięci podręcznej lub otwierania nowego okna incognito za każdym razem zawsze była uciążliwa, więc w zeszłym roku opracowałem dla siebie rozszerzenie do Chrome, aby pomóc w podobnej sytuacji, i Niedawno opublikowałem bardzo zgrubną wersję w Chrome Web Store, która nazywa się LiveHosts .

Istotą tego jest to, że chociaż @JdeBP ma rację, a skonfigurowanie serwera proxy byłoby właściwym rozwiązaniem, często nie jest to możliwe. Rozszerzenie Chrome nie może jednak dokładnie powielić tego, co dzieje się po zmianie pliku hosta, więc w tej chwili LiveHosts robi:

  • pozwala skonfigurować wiele wpisów nazwy hosta / adresu IP;
  • wykrywa żądania do jednej z określonych nazw hostów;
  • przekierować żądanie do żądanego adresu IP za pomocą odpowiedniego nagłówka hosta HTTP;
  • dodaj wizualne (i brzydkie, przyznaję) odniesienie w adresie URL paska adresu, które będzie wyglądać mniej więcej tak http://127.0.0.1/www.example.com/whateverelse;
  • zezwalaj na różne pary host / IP na różnych kartach jednocześnie.

To nie jest ładne, ale wystarcza dla standardowego programisty WWW, który próbuje szybko przełączać się między środowiskami. Istnieje oczywiście kilka zastrzeżeń:

  • w zależności od serwera części strony internetowej odwołujące się do adresu URL witryny (takie jak atrybuty href i src) mogą różnić się od oryginału;
  • window.location ma inną wartość, która może potencjalnie zrzucić fragmenty kodu JavaScript;
  • większość żądań Cross-Origin nie będzie działać.
Aioros
źródło
0

W hostów wirtualnych Plugin jest jedynym, który ma pracę dla mnie, jak się spodziewałem.

Uzyskaj dostęp do wirtualnych hostów serwera bez potrzeby przekierowania hosta lub DNS.

JDL
źródło
2
Dla mnie to rozszerzenie wydaje się przekierowywać po stronie klienta na adres IP, który wcale nie jest taki sam jak modyfikacja pliku hosts.
Jeff Ward