Файл hosts на вашому Mac – це невеликий, але значущий текстовий документ, який дозволяє встановлювати відповідність між іменами хостів та конкретними IP-адресами.
У сучасному інтернеті використовуються різні публічні та приватні DNS-сервери для перетворення імен на IP-адреси, однак файл hosts є ефективним способом обійти ці DNS-сервери. Він дає змогу вручну вказати IP-адресу для певного веб-сайту або повністю заблокувати доступ до нього, перенаправляючи на неактивну або внутрішню IP-адресу.
Давайте швидко розглянемо процес редагування файлу hosts на macOS.
Методи редагування файлу hosts на Mac за допомогою текстового редактора
Існує два основні способи редагувати файл hosts в macOS.
Перший варіант – використання TextEdit, оскільки файл hosts є звичайним текстовим файлом. Але, ви не можете відкрити файл безпосередньо, оскільки він розташований у захищеній частині файлової системи. Вам потрібно скопіювати файл у безпечне місце, наприклад, на робочий стіл, відредагувати його і потім повернути назад.
- Для пошуку файлу hosts, відкрийте Finder. Ви можете зробити це, клацнувши на робочому столі, за допомогою пошуку в нижньому лівому куті екрана або натиснувши cmd + пробіл + Finder.
- Далі, у верхньому меню виберіть “Перехід”.
3. У меню, що з’явиться, натисніть “Перейти до папки”.
4. У текстовому полі введіть “/private/etc/hosts” та натисніть клавішу “Return”.
5. Відкриється нове вікно Finder, де буде обрано файл hosts. Перетягніть його з вікна Finder на робочий стіл.
Щоб відкрити його, просто двічі клацніть. Вміст файлу відобразиться у TextEdit або іншому текстовому редакторі, який ви оберете.
Заборона доступу до IP-адрес
Файл /etc/hosts за замовчуванням є доволі простим. Він складається з ряду рядків з коментарями, що позначені символом решітки (#).
Будь-який рядок, що починається із символу #, є коментарем і не впливає на роботу файлу /etc/hosts. Будь-який текст після символу решітки ігнорується комп’ютером, що робить його зручним для додавання приміток та описів до файлу. Також в файлі вказано значення IP за замовчуванням для localhost і broadcasthost. Для редагування файлу, потрібно додати нові рядки після broadcasthost.
Окрім тестування нових веб-сайтів та зміни хостингу, ще однією причиною редагування файлу hosts є блокування доступу до певних веб-ресурсів.
У прикладі, припустимо, що комп’ютер використовується виключно для роботи, і потрібно запобігти відволіканню на соціальні мережі, наприклад, Facebook.
Для цього потрібно вказати IP-адресу, яку потрібно присвоїти, потім два пробіли (або табуляцію) і ім’я хоста. У цьому прикладі ми заблокуємо Facebook, тому зіставимо www.facebook.com з адресою 0.0.0.0, яка є недійсною IP-адресою, і призведе до помилки.
Тепер, при спробі перейти на www.facebook.com з нашого Mac, веб-браузер не зможе завантажити сторінку, що сподіваємося змусить повернутися до роботи!
Перенаправлення веб-адрес
Ви можете використовувати дійсну IP-адресу іншого сайту замість 0.0.0.0. В результаті, користувачі, які намагаються отримати доступ до Facebook, будуть перенаправлені на сайт, який ви обрали.
- Щоб дізнатися IP-адресу веб-сайту, можна використовувати команду dig, яка є стандартною для macOS. Для пошуку IP-адреси за допомогою терміналу, відкрийте термінал і введіть команду dig, а потім URL-адресу. Результат буде IP-адресою.
- Тепер введіть “$ dig www.techjunkie.com +short 104.25.27.105”.
Примітка: Опція +short показує тільки потрібну інформацію, а саме IP-адресу.
3. Запам’ятайте IP-адресу та використовуйте її у файлі hosts. Наприклад, веб-сайт The New York Times має IP-адресу 170.149.172.130. Якщо зіставити цю адресу з Facebook в файлі hosts, то кожен раз, коли хтось спробує перейти на Facebook, замість нього завантажиться The New York Times.
Примітка: Деякі веб-сайти не дозволяють зіставляти доменне ім’я з іншою IP-адресою, тому ви можете отримати помилку безпеки.
4. Ви можете додати стільки записів, скільки потрібно до файлу hosts, вводячи нові зіставлення в кожному рядку. Після завершення редагування, збережіть файл на робочому столі.
5. Перетягніть файл hosts з робочого столу назад у вихідну папку /private/etc. Якщо ви закрили вікно Finder, де був відкритий каталог, скористайтеся командою Finder > Перехід > Перейти до папки, як було описано вище, щоб знову відкрити його.
6. Коли ви будете перетягувати файл hosts назад у вихідне місце, macOS запитає вас, що робити з файлом hosts, що вже там знаходиться. Натисніть “Замінити” та введіть пароль адміністратора для підтвердження дій.
Після внесення змін до файлу hosts, запустіть веб-браузер, щоб перевірити зміни.
Очищення кешу DNS
Зазвичай нові налаштування мають запрацювати негайно, але якщо ви не бачите очікуваної поведінки, потрібно очистити кеш DNS, щоб браузер зчитав налаштування з файлу hosts.
- Щоб очистити кеш DNS на вашому Mac, відкрийте термінал і скористайтеся командою (sudo дозволяє виконувати команду як адміністратор):
- Введіть “sudo killall -HUP mDNSResponder” і натисніть Return. Вам потрібно буде ввести пароль адміністратора для виконання цієї команди.
- Щоб Mac очистив кеш DNS і ви отримали підтвердження, введіть дві команди, розділені крапкою з комою: “sudo killall -HUP mDNSResponder; say кеш DNS очищено”
Після цього, через динаміки ви почуєте повідомлення: “Кеш DNS очищено”.
Редагування файлу hosts через термінал за допомогою Nano
Процес, описаний в попередньому розділі є простим, але якщо ви хочете уникнути копіювання файлу hosts, ви можете відредагувати його безпосередньо в терміналі за допомогою текстового редактора UNIX Nano, який є вбудованим в macOS.
- Щоб розпочати, запустіть термінал, введіть команду і натисніть Return. Як і для усіх команд sudo, вам потрібно буде ввести пароль адміністратора для її виконання: “sudo nano /private/etc/hosts”
2. Ви побачите файл hosts відкритим у редакторі Nano або vim, або іншому редакторі на ваш вибір. Для навігації та редагування файлу в Nano, використовуйте клавіші зі стрілками на клавіатурі.
3. Як і у випадку з TextEdit, ви можете додавати, редагувати або видаляти зіставлення імен хостів. Оскільки Nano був запущений з правами sudo, усі зміни будуть перевірені та збережені безпосередньо в оригінальний файл hosts без необхідності його копіювання.
4. Після завершення редагування, натисніть Control-X для виходу з редактора, Y для збереження та Return для перезапису існуючого файлу hosts.
Як ми вже згадували раніше, не забувайте очистити кеш DNS, якщо ваші нові налаштування не працюють належним чином.
У прикладах йшлося про блокування та перенаправлення веб-сайтів у робочому середовищі, але ви можете використати ці кроки для блокування доступу до шкідливих сайтів та для інших цілей.
Якщо ви зробили помилку і не знаєте як це виправити, ви можете відновити вміст файлу hosts за замовчуванням, скориставшись одним з вищезазначених методів, щоб ввести таку інформацію:
##
# База даних хоста
#
# localhost використовується для налаштування інтерфейсу зворотного зв’язку
# під час завантаження системи. Не змінюйте цей запис.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost::1 localhost
fe80::1%lo0 localhost
На завершення
Знання про те, як редагувати файл hosts в macOS є зручним способом обходу DNS-серверів та ручного вказування IP-адреси для веб-сайту або блокування доступу. Дотримуючись наведених вище інструкцій, ви можете зробити це досить швидко.
З якою метою ви хочете редагувати файл hosts на вашому Mac? Як пройшов процес? Напишіть про це в коментарях!