4

Мне часто приходится переключать IP-адрес, к которому относится имя, для выполнения определенных задач при создании или, в частности, при переносе веб-сайтов / веб-приложений на новую платформу / сервер. Много раз мне приходилось быстро переходить назад и вперед, что означало редактирование etc / hosts и многократное обновление, что раздражает.

Существует ли какая-либо программа / плагин / расширение для браузера (предпочтительно для Chrome или FF), которая позволяет мне быстро менять IP-адрес назад или вперед, или позволяет браузеру выбирать свой собственный DNS-сервер или файл хоста, независимый от системы (так что я мог бы просто использовать один браузер использует системные настройки, а другой - собственные настройки, например. Chrome разрешает example.com в 1.1.1.1, а FF разрешает example.com в 1.2.2.2)?

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

5 ответов5

2

Аддон Firefox

  1. SwitchHost (сайт дополнений Mozilla/Firefox).

    Основываясь на описании ниже, это 100% ОП, запрашивающая (переключение / использование файла хоста)

    SwitchHosts позволяет быстро и легко управлять и переключаться между несколькими файлами хоста ...

  2. HostAdmin

  3. TamperData

Оба (1) и (2) архивируют результат, изменяя файл хоста, который будет влиять на другую программу.

(3) может быть, больше к вашим потребностям, если вы не хотите влиять на другую программу. Он также обладает тем преимуществом, что не требует изменения разрешения на запись файла /etc/hosts , что может быть проблематичным (или даже не влиять) в OS X.

1

Как насчет использования сценария оболочки или Applescript для замены файла системного хоста?

Непроверенная версия оболочки:

mv /private/etc/hosts /private/etc/hosts.tmp
mv /private/etc/hosts.alt /private/etc/hosts
mv /private/etc/hosts.tmp /private/etc/hosts.alt
dscacheutil -flushcache
1

Вы можете запустить прокси-сервер и заставить один браузер использовать его, а другой запускать напрямую. Я не уверен, какой стандартный прокси-сервер лучше всего подходит для этого - если он находится на отдельной машине / виртуальной машине, тогда все будет в порядке, так как вы можете настроить DNS машины. Yoy, вероятно, может сказать Apache или squid использовать собственные правила DNS или переписать, или вы можете написать свой собственный прокси, чтобы сделать это в <100 строках Python ...

1

Одним из вариантов является настройка собственного DNS-сервера и применение изменений с помощью динамических обновлений DNS. Скорее всего, вам все равно придется очистить DNS-кэши браузера из-за закрепления DNS. Если вы используете прокси-сервер, DNS-сервер отвечает за него (за исключением проблем с предварительной загрузкой DNS в Chrome), поэтому прокси-сервер является наиболее чистым решением.

Есть два HTTP прокси, которые могут сделать это:

  • Fiddler имеет переопределения файлов хостов: http://www.fiddler2.com/fiddler/help/hosts.asp Хотя он работает только в Windows - но, поскольку это полный HTTP-прокси, он может использоваться из других систем, как и ожидалось.
  • Прокси Charles имеет возможность спуфинга DNS: http://www.charlesproxy.com/documentation/tools/dns-spoofing/ Это, вероятно, лучше подходит, это мультиплатформенная, включая Mac OS.

Скрипач свободен, Чарльз нет, хотя у него есть свободное ограниченное по времени испытание.

В Chrome вы можете легко проверить и очистить кэш DNS: chrome://net-internals/#dns Я не верю, что есть какое-либо расширение для переопределения DNS (хотя оно может выполнять поиск DNS).

С помощью плагина для переключения прокси-сервера вы можете переключать сайты, включая или переключая прокси.

Для полноты, есть два возможных проблемы с этим подходом: куки и кеширование. Файлы cookie состояния или авторизации на одном сервере могут не работать на другом. Новое содержимое на тестовом сайте может не отображаться, так как срок его действия еще не истек, это зависит от настроек кэширования на сервере и содержимого. Очистка кэша браузера и файлов cookie должна помочь, если это произойдет.

Вы также можете столкнуться с противоположной проблемой того, что контент не кэшируется должным образом, поскольку веб-серверы имеют разные заголовки Etag для одного и того же статического контента. Обычно это не вызывает больших проблем, хотя может быть отмечено в отчетах о производительности.

Поскольку ваш нынешний подход к переключению DNS вручную также может пострадать от вышеперечисленного, они, вероятно, не являются проблемой для вас, или вы уже заметили ;-)

(Когда это возможно, я предпочитаю использовать альтернативный подход ко всей проблеме, который обычно чище: добавить псевдонимы виртуальных хостов «dev-www», «prod-www», «test-www» и т.д., Хотя иногда это имеет свои сложности.)

0

В FireFox вы можете использовать надстройку Redirector, которая позволяет указывать шаблоны для страниц, которые должны автоматически перенаправляться на другие страницы. Например, перенаправьте http://example.com/foo.html на http://example.com/bar.html .

Расширение поддерживает шаблоны и регулярные выражения в шаблонах. Регулярные выражения поддерживают захват скобок, поэтому вы можете перенаправить http://example.com/(.*) на http://1.1.1.1/$1 .

Чтобы временно отключить перенаправитель, нажмите R в строке состояния или нажмите Alt+R. Если щелкнуть правой кнопкой мыши значок, откроется окно параметров перенаправителя.

(Отказ от ответственности: я никогда не использовал это дополнение самостоятельно.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .