Я пытаюсь перенаправить google.com на свой локальный компьютер ради развлечения и обучения с помощью этого файла /etc/hosts на моем Mac.
127.0.0.1 www.google.com
Однако www.google.com по-прежнему отображается на домашней странице Google, когда я посещаю ее в Chrome на моем Mac. Почему?
В общем, вот все, что я сделал:
- Введите
sudo vim /etc/hosts
в терминале. - Введено
127.0.0.1 www.google.com
в файл hosts. - Сохранил и вышел из 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 учитывал новую запись, выполните следующие действия:
Отредактируйте
/etc/hosts
, как описал @Renan.Идти к
chrome://chrome/settings/clearBrowserData
.Выбирать
since the beginning of time
.Отметьте галочкой
Empty the cache
, но снимите галочки со всех остальных.Нажмите
Clear browsing data
и дождитесь окончания.Перезапустите 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.
- Идти к
chrome://chrome/settings/clearBrowserData
. - Выбирайте с начала времен.
- Установите флажок Очистить кэш, но снимите все остальные флажки.
- Нажмите «Очистить данные браузера» и дождитесь завершения процесса.
- Перезапустите Chrome.
Теперь Chrome должен учитывать ваш файл hosts.