Имитация манипулирования файлом etc / hosts в Google Chrome

30

Как настроить Chrome для локальной ссылки на поиск имен хостов, а не из стандартного файла etc / hosts?

При отладке веб-сайта иногда полезно настроить записи в C: \ Windows \ system32 \ drivers \ etc \ hosts, которые заменяют определенные домены на localhost, что позволяет мне на лету тестировать версии веб-сайтов или доменов, которые могут конфликт с живыми актуальными сайтами.

Можно ли настроить Google Chrome таким образом, чтобы имитировать и упростить этот процесс?

Я не буду изменять экземпляр браузера так, чтобы он вел себя так, как будто etc / hosts был изменен, хотя даже это может быть слишком большой угрозой безопасности в расширении.

ripper234
источник
Пожалуйста, отметьте
Али

Ответы:

13

Я только что нашел расширение Host Switch Plus Chrome, которое делает именно это;)

mettjus
источник
Host Switch Plus не работает для меня и многих других.
Zylstra
1
Host Switch Plus делает именно это. Это меняет прокси. Но цель состоит в том, чтобы изменить IP-адрес домена. (Эмулировать DNS-сервер)
TEXHIK
У меня не работает, извините.
Сержан Ахметов
7

Один из способов достижения вашей реальной цели - не использовать расширения Chrome или даже Chrome вообще. Таким способом можно настроить интеллектуальный прокси-сервер HTTP, указать на него Chrome, а затем добавить правила перезаписи на прокси-сервер, которые перезаписывают URL-адреса под обложками.

Есть много людей, которые делают это с различными прокси-серверами HTTP - слишком много, чтобы подробно описать каждый из них в ответе здесь Они делают это в целях рекламы, веб-ошибок и тому подобного, но принцип и механизм идентичны тому, что вы хотите сделать. Они хотят, чтобы браузер WWW извлекал определенный URL-адрес как обычно, но фактическое содержимое, которое он получает, соответствует содержимому другого (локального или иного) URL-адреса. Единственное, что нужно знать WWW-браузеру, это то, что он общается с Интернетом через прокси-сервер.

Для одного примера, см. Ad Zapper на SourceForge . Это сценарий Perl, который работает совместно с прокси-сервером Squid для переписывания URL-адресов на лету в прокси-сервере. Как вы можете видеть из своей базы данных конфигурации, люди использовали его механизм для широкого круга задач, от обеспечения того , чтобы один всегда видит « для печати» формы статей на новостных услугах , избавившись от рандомизированных реклам перенаправлений на Интернет порнографических сайтов.

Обратите внимание, что это намного лучше, чем то, что вы делаете с hostsфайлом, который является неподходящим механизмом для манипулирования службой WWW. hostsимеет дело только с поиском по имени и адресу, сбрасывает все остальное (без браузера WWW), которое необходимо для поиска по имени, и (как вы, наверное, уже знаете) требует, чтобы каждое перезаписанное имя хоста было дополнительно настроено как виртуальный хост на целевой контент HTTP-сервер. Напротив, перезаписывающий прокси-сервер HTTP такого типа работает с URL-адресами и влияет только на HTTP и браузеры WWW, настроенные для его использования в первую очередь., Таким образом, он может делать такие вещи, как только переписывать URL-адреса JavaScript и оставлять все остальное с того же WWW-сайта в одиночку; переписать всю нагрузку на имена хостов только на одно; и сделать (еще дальше) сопоставление с образцом. (Есть случаи, когда это происходит в базе данных конфигурации Ad Zapper, обратите внимание.) И можно сделать такие вещи, как один браузер WWW, просматривающий мир через переписывающий прокси, и другой, просматривающий его напрямую, на одной машине одновременно.

JdeBP
источник
Еще одно преимущество по сравнению с расширением Chrome - оно работает в разных браузерах! Прямо сейчас я все еще использую файл hosts, но я рассмотрю возможность переключения на прокси-сервер, если возникнет реальная необходимость.
ripper234
4

Я использовал (и до сих пор использую) HostAdmin неукоснительно, но необходимость очищать кэш или открывать новое окно инкогнито всегда было делом рутинным, поэтому я закончил разработку расширения Chrome для себя в прошлом году, чтобы помочь в подобной ситуации, и Недавно я опубликовал в Chrome Web Store очень грубую версию, которая называется LiveHosts .

Суть в том, что хотя @JdeBP и прав, и настройка прокси-сервера будет правильным решением, это часто не вариант. Расширение Chrome не может точно воспроизвести то, что происходит, когда вы меняете файл хоста, поэтому LiveHosts делает прямо сейчас:

  • позволяет настроить несколько записей имени хоста / IP;
  • обнаруживать запросы к одному из определенных имен хостов;
  • перенаправить запрос на нужный IP с соответствующим заголовком HTTP Host;
  • добавить в URL адресной строки визуальную (и некрасивую, я признаю) ссылку, которая будет выглядеть примерно так http://127.0.0.1/www.example.com/whateverelse;
  • разрешить разные пары хост / IP на разных вкладках одновременно.

Это не красиво, но достаточно для стандартного веб-разработчика, который пытается быстро переключаться между средами. Есть, конечно, несколько предостережений:

  • в зависимости от сервера части веб-страницы, ссылающиеся на URL сайта (например, атрибуты href и src), могут отличаться от оригинала;
  • window.location имеет другое значение, которое может потенциально отбрасывать фрагменты JavaScript;
  • большинство запросов кросс-происхождения не будут работать.
Aioros
источник
0

В Виртуальные хосты плагин является единственным, который имеет работу для меня , как я ожидал.

Доступ к виртуальным хостам сервера без необходимости перенаправления хоста или DNS.

JDL
источник
2
Для меня это расширение, кажется, выполняет перенаправление на стороне клиента на IP-адрес, что совсем не то же самое, что модификация файла хоста.
Джефф Уорд
-1

Попробуйте расширение DNS Overrider:

Using DNS Overrider you can replace hostname on the fly without access to 
system settings such as hosts file. DNS Overrider enables you to select what 
rules to apply via the extension settings page.

https://chrome.google.com/webstore/detail/dns-overrider/acmhaiiijfheggcaanjlgpampclpbnoh/

RavanH
источник
4
Это ничего не делает с разрешением DNS, оно просто меняет URL на странице DOM
Питер Олсон,