У меня есть несколько промежуточных и тестовых серверов, для которых мне нужно постоянно изменять свой файл hosts (они зависят от имени домена, поэтому я должен изменить файл hosts, чтобы заставить их работать).
Я нахожу это раздражающим. Я бы хотел установить портативный браузер для каждого типа сайта, с которым я хочу работать. Существует ли какая-либо версия какого-либо графического веб-браузера (включая браузеры, основанные на механизмах рендеринга других браузеров), которая будет делать это?
Таким образом, я могу просто запустить экземпляр, который уже настроен для работы с подготовкой, если я хочу протестировать подготовку.
Любые идеи?
РЕДАКТИРОВАТЬ: Важной особенностью является возможность одновременного запуска двух браузеров, оба some-address.com
из которых обращаются к браузеру, но один браузер направляет запросы на сервер, 1.2.3.4
а другой - на запросы 5.6.7.8
.
РЕДАКТИРОВАТЬ: (16.03.14)
Этот вопрос был задан несколько лет назад, и я до сих пор не знаю достойного способа сделать это. Позвольте мне попытаться объяснить дальше, потому что люди, кажется, неправильно понимают проблему. Это не то, что легко исправить с помощью прокси-сервера. Я полагаю, что было бы возможно написать обширные правила на прокси-сервере для решения проблем, но это огромное сложное решение, которое должно быть простой проблемой.
Итак, чтобы уточнить:
Есть три веб-сервера. Производство, тестирование и разработка. Каждый запускает мультитенантное приложение, которое настраивает себя на основе имени хоста, используемого для доступа к нему. Концептуально это похоже на систему управления контентом или систему блогов, которая позволяет запускать несколько сайтов с одного экземпляра сервера. Вы просто указываете имя хоста на сервере, и какое бы имя хоста не использовалось для доступа к нему через сопоставление имени хоста HTTP 1.1, это сайт, который он отображает.
Любое решение, которое просто переписывает файл хоста, не работает из-за необходимости одновременного запуска нескольких окон браузера на разных сайтах, производства, разработки, тестирования и т. Д. Так что просто постоянное изменение файла хоста не дает работать, потому что это влияет на все экземпляры браузера. Если вы измените сопоставление для одного браузера, то другие обозреватели теперь также сопоставляются с этим сервером, поэтому любые последующие запросы будут отправляться на неправильный сервер.
Все, что я ищу, - это способ заставить этот экземпляр браузера использовать этот файл хоста, и этот экземпляр браузера использовать этот файл хоста, например, через параметр командной строки. Мне даже все равно, нужно ли мне устанавливать несколько копий браузера.
Это может быть выполнимо с переносным Firefox, так как я думаю, что он использует свои собственные файлы конфигурации для каждой установленной копии, но проблема в том, что стороннее программное обеспечение, используемое для администрирования сайтов, не работает с Firefox (сами сайты делают, но инструменты администратора нет, они нормально работают с Chrome, IE и Opera, однако .. и у меня нет доступа к источнику, чтобы это исправить).
источник
Ответы:
Squid решил проблему для меня. Я думаю, что многие прокси-серверы могли бы сделать то же самое.
В частности, мне пришлось установить Squid. Затем измените файл squid.conf так, чтобы он обращался к файлу альтернативных хостов. Это строка, которую вы хотите изменить:
В моем случае я использовал
hosts_file /etc/hosts-squid
. Я создал/etc/hosts-squid
файл и изменил файл hosts-squid так, чтобы он давал мне доступ к новым IP-адресам, которые я хотел получить для данного URL. Это было все, что мне нужно было сделать, чтобы настроить прокси-сервер Squid.Затем я создал команду для запуска моего браузера с настройками прокси. Я использовал:
Выполнение этой команды дает мне работающий экземпляр chromium, который может получить доступ к настройке доменов в файле hosts-squid, который я создал.
Я также смог настроить несколько прокси-серверов, используя несколько экземпляров Squid для доступа к производственному, разрабатываемому и локальному веб-сайту на одном компьютере. Инструкции по запуску нескольких экземпляров Squid находятся здесь . Я также написал сообщение в блоге, объясняющее проблему и решение более подробно.
источник
Я считаю, что вы просите настроить виртуальную среду для каждого браузера, которая включает в себя свой собственный файл hosts.
Одним из решений может быть использование Sandboxie для настройки отдельной песочницы, каждая из которых содержит свой собственный файл hosts. Браузер не должен быть установлен в песочницу, чтобы использовать файл hosts, только что запущенный из этой песочницы. Ярлыки на рабочем столе могут быть созданы для запуска браузера из песочницы.
Недостатком будет то, что браузеры будут изолированы от реальной файловой системы, например, при загрузке файлов из Интернета, но Sandboxie включает механизмы для копирования таких файлов вне песочницы.
К сожалению, возможность одновременного запуска программ в более чем одной песочнице доступна только в платной версии Sandboxie (15 евро плюс налог за лицензию на один год для личного использования дома). Технико-экономическое обоснование может быть сделано с использованием бесплатной версии.
Для пользователей Linux аналогичные продукты:
источник
%SYSTEM32%/Drivers/etc/hosts
в Windows и/etc/hosts
Linux. Не могли бы вы подтвердить? Я бы предпочел версию для Linux, потому что пару лет назад я провел быструю оценку безопасности Sandboxie в Windows (она не удалась, а отчеты автору остались без ответа).%SYSTEM32%/Drivers/etc/hosts
, то это ваши очки. Операционная система была недооценена, и было бы несправедливо скрывать их, если работает Windows / Sandboxie.Вы можете автоматизировать процесс изменения файла хоста с помощью Firefox + HostAdmin.
HostAdmin - это дополнение к Firefox, которое помогает вам изменять файл Hosts, переключать сопоставление IP-адресов доменов. HostAdmin может понять ваш файл Hosts через расширенный синтаксис файла Hosts. Кроме того, HostAdmin автоматически обновляет кэш DNS при каждом изменении файла Hosts, даже вручную.
Пример конфигурации
Более подробная информация на https://addons.mozilla.org/en-US/firefox/addon/hostadmin/
Несколько экземпляров
Для одновременного и независимого запуска двух экземпляров браузера Firefox в Linux создайте несколько программ запуска с помощью следующего скрипта. Также установите плагин во всех Firefox.
Firefox 1
Firefox 2
Вы можете использовать опцию профиля (
firefox -P
) в браузере, чтобы использовать собственные профили для других настроек и можете использовать их одновременно.источник
Я знаю, что это не то, что вы просите, но временным решением может быть написание пакетного скрипта для замены файлов хостов, а затем запуска браузера.
По крайней мере, это сведет к минимуму работу, которую вы делаете.
Или вы можете просто назвать эти серверы как-то совершенно по-другому в файле hosts, чтобы вам никогда не приходилось их переключать для начала.
источник
Privoxy может быть использован для этой цели.
источник
--proxy-server=
.Не знаю, достаточно ли это удобно для вас, но одним из возможных решений будет установка IIS на машину с браузерами и предоставление серверных сценариев (таких как ASP.net, PHP, Ruby ...), которые изменяют
hosts
файл и затем перенаправить на фактическую страницу. В ваших браузерах вы затем создаете закладку для этого скрипта, например,http://localhost/config_ie.rb
которая изменяетhosts
файл (конечно, требует правильных разрешений для этого файла), а затем выполняете перенаправление 302 на реальную страницу.источник
hosts
файл для каждого процесса. b) Локальный перехват DNS: запрос от «iexplore.exe» и т. д. может обрабатываться в соответствии с предоставленным вами списком. - Есть идея, которая тебе нравится?Если полной виртуальной машины слишком много, может подойти решение на основе контейнера.
Если мы говорим о Linux здесь,
lxc
может быть возможным решением.Кроме того, даже полная виртуальная машина с минимальным X11-linux не такая большая (максимум 2 ГБ диска) и не потребляет столько ресурсов (максимум 512 МБ ОЗУ) с современным оборудованием ...
Lubuntu
VM может сделать здесь.источник
Одним из относительно простых решений (но, возможно, немного ресурсоемким) было бы иметь на своем хосте несколько виртуальных машин. Каждая виртуальная машина имеет свой собственный файл хоста.
Таким образом, у вас будет одна виртуальная машина для промежуточной среды, одна для Prod и т. Д.
источник