Почему перенаправление файла hosts не удается?

Почему перенаправление файла hosts не удается?

Я пытаюсь перенаправить google.com на свой локальный компьютер ради развлечения и обучения с помощью этого файла /etc/hosts на моем Mac.

127.0.0.1 www.google.com

Однако www.google.com по-прежнему отображается на домашней странице Google, когда я посещаю ее в Chrome на моем Mac. Почему?

В общем, вот все, что я сделал:

  1. Введите sudo vim /etc/hostsв терминале.
  2. Введено 127.0.0.1 www.google.comв файл hosts.
  3. Сохранил и вышел из vim.

решение1

Файл hostsне работает таким образом. Вы можете использовать его только для сопоставления имен хостов с IP-адресами, а не с localhost.

В вашем случае вы бы использовали 127.0.0.1 www.google.com, то есть сопоставили www.google.com с 127.0.0.1.

Если вы хотите сопоставить несколько имен хостов с одним IP-адресом, просто добавьте эти имена хостов в одну строку, например 127.0.0.1 www.a.com www.b.com, .

решение2

Веб-браузер — не лучший способ проверить hostsправильность синтаксиса. Попробуйте выполнить

ping www.google.com

и убедитесь, что он пингуется 127.0.0.1.

Причина, по которой Chrome игнорирует ваш hostsфайл, — кэширование:

Если Chrome уже запрашивал IP-адрес в последнее время (определение «в последнее время», скорее всего, зависит отвремя жить (TTL)возвращенный DNS-сервером), он обойдет файл hosts, так как он ужезнаетправильный IP. Это делается для ускорения просмотра веб-страниц.

Чтобы Chrome учитывал новую запись, выполните следующие действия:

  1. Отредактируйте /etc/hosts, как описал @Renan.

  2. Идти к chrome://chrome/settings/clearBrowserData.

  3. Выбирать since the beginning of time.

  4. Отметьте галочкой Empty the cache, но снимите галочки со всех остальных.

  5. Нажмите Clear browsing dataи дождитесь окончания.

  6. Перезапустите Chrome.

Теперь Chrome должен уважать ваш hostsфайл.

решение3

Мой ответ представляет собой комбинацию вышеперечисленного, поскольку я подключаюсь к своему офису через Fortinet SSL VPN для Ubuntu 16.04.

Первое, что мне нужно было сделать, это открыть консоль терминала и выполнить следующую команду:

sudo nano /etc/resolvconf/resolv.conf.d/base

Я добавил следующий пример:

searchdomain domain.local
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx

Затем я сохранил файл, нажав кнопку , CTRL-Oи закрыл nano, нажав кнопку CTRL-X.

Затем я сделал следующее, и это сработало идеально:

Чтобы Chrome учитывал новую запись, выполните следующие действия:

Отредактируйте /etc/hosts, как описал @Renan.

  1. Идти к chrome://chrome/settings/clearBrowserData.
  2. Выбирайте с начала времен.
  3. Установите флажок Очистить кэш, но снимите все остальные флажки.
  4. Нажмите «Очистить данные браузера» и дождитесь завершения процесса.
  5. Перезапустите Chrome.

Теперь Chrome должен учитывать ваш файл hosts.

Связанный контент