Расскажу как редактировать файл Hosts macOS и зачем он вообще нужен. Как с его помощью блокировать сайты и менять сопоставление IP-адресов. Как восстановить оригинальную версию для отмены внесённых изменений и очистить кэш ДНС через Терминал.
Система доменных имён DNS
Когда вы вводите доменное имя (адрес) сайта, который хотите посетить в адресную строку браузера, незаметно происходит много событий скрытых от глаз.
Каждый сайт, каждая служба, почти каждое устройство, подключённое к интернету, имеет уникальный числовой IP-адрес, который его идентифицирует.
Существует система доменных имён (DNS), которая преобразует эти IP-адреса в более узнаваемые и запоминающиеся для людей имена. Например, название сайта macnoob.ru выглядит гораздо приятнее IP 5.101.115.179.
Когда вы впервые вводите адрес сайта, Mac проверяет связь с DNS-сервером (это происходит автоматически через интернет-провайдера), чтобы узнать TCP/IP адрес сервера, к которому вы пытаетесь подключиться.
При этом Mac создаёт скрытый файл кеша, чтобы запомнить это сопоставление на случай, если вы заново решите посетить тот же сайт.
Система доменных имён и связанный с ней кеш позволяют компьютеру на macOS узнать, как открыть нужный сайт в интернете.
Но есть ещё файл, который может быть очень полезным. Он называется Hosts, и его можно использовать для принудительного переопределения информации DNS.
Редактирование файла Host
Существует несколько причин изменить файл Hosts вместо того, чтобы просто позволить DNS делать своё дело:
- Тестирование сайта на сервере, прежде чем его смогут увидеть другие пользователи интернета.
- Для блокировки или обхода программ-шпионов обнуляя их IP-адреса. Для этого достаточно указать IP 0.0.0.0, а затем имя домена, который вы хотите заблокировать.
- Устранение последствия работы вирусов-вымогателей, которые блокируют выход в интернет.
Самый популярный способ работы с файлом Host — использовать стандартное приложение Терминал, которое находится в папке «Утилиты» каждого Mac.
Также можно открыть Терминал используя поиск Spotlight или через Launchpad.
Чтобы открыть файл Hosts запустите Терминал и в окне приложения введите команду открытия текстового редактора Nano:
sudo nano /etc/hosts
После ввода команды нажмите клавишу «Ввод», введите свой пароль администратора и снова нажмите «Ввод».
Процесс ввода пароля администратора визуально никак не отображается — это нормально. Просто введите пароль на клавиатуре, нажмите «Ввод» и всё сработает.
Теперь вы находитесь в текстовом редакторе Nano и должны увидеть что-то похожее на это:
Мышь и трекпад здесь не работают, можно использовать только клавиатуру Mac.
Прежде чем изменить Hosts на Mac, сделайте копию файла из /private/etc/hosts. Это может понадобиться, если у вас там прописаны дополнительные сопоставления. В моём случае это IP 10.221.55.3 для виртуальной машины с Windows 10.
Чтобы сопоставить новое устройство или домен с нужным IP-адресом, переместите курсор с помощью клавиш со стрелками на любую строчку после строк, закомментированных символами #.
Например, если вы сопоставляете IP-адрес с доменом, введите IP, нажмите пробел и введите имя домена.
И наоборот, если вы хотите заблокировать какой-либо сайт, используйте 127.0.0.1 для его сопоставления с локальным компьютером.
Например, чтобы заблокировать посещение сайта macnoob.ru на Mac, нужно сделать так:
После внесения изменений нажмите сочетание клавиш Control+O, чтобы применить их.
После этого нажмите Control+X и «Ввод» для выхода из редактора.
Чтобы увидеть изменения, осталось очистить кеш ДНС. Для этого введите команду:
sudo killall -HUP mDNSResponder
Это очистит кеш DNS на Mac и операционная система увидит внесённые изменения в файле Hosts.
В нашем случае, при попытке открыть сайт macnoob.ru, которому мы сопоставили локальный IP 127.0.0.1, увидим в браузере такое сообщение:
Важно не забыть, что вы редактировали Hosts, потому как позже может потребоваться отменить внесённые изменения.
Альтернативным способом редактирования файла Hosts на Mac служит текстовый редактор TextEdit. Скопируйте файл из /private/etc/hosts и внесите изменения. После чего замените им оригинал (редактировать оригинал не получится).
Как восстановить файл Hosts на Mac
Когда потребуется отменить изменения и восстановить нормальную работу ДНС на Mac, просто замените текущую версию на ранее созданную копию или вставьте в него значения по умолчанию.
Для этого откройте Finder и введите в поиске «Hosts»:
Либо пройдите к его расположению на диске в папке /private/etc/hosts.
Скопируйте его (в оригинал внести изменения нельзя) и откройте в текстовом редакторе TextEdit. Теперь удалите всё содержимое и вставьте значение по умолчанию:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
Нажмите «Сохранить», закройте файл и замените им оригинал в папке /private/etc/hosts.
Когда macOS спросит, хотите ли вы заменить файл, подтвердите своё решение, введите пароль администратора и перезагрузите Mac.
На этом всё, если появились вопросы — задавайте их в комментариях, постараемся помочь.
Добрый ночи! Я вроде как удалил кэш со своего мака, однако теперь на команду sudo nano/etc/hosts выдаётся command not found. Более того, я следовал вашим инструкциям, однако папки Hosts на моём Маке попросту нет, даже в файлах. Надеюсь на вашу помощь.
Здравствуйте. Огромное спасибо за статью. Вы мне очень помогли!