Как изменить DNS-серверы на Mac через Terminal
Зачем менять DNS через Terminal
Изменение DNS через Terminal полезно в трёх основных случаях:
- Удалённый доступ по SSH, когда нет физического доступа к Mac.
- GUI (Системные настройки) не работает или зависает.
- При отладке сети и тестировании альтернативных DNS-сервисов.
Краткое определение: DNS — служба, которая переводит имена доменов (пример.com) в IP-адреса.
Что потребуется
- Учётная запись с правами администратора на Mac.
- Знание имени сетевого интерфейса (обычно “Wi-Fi” или “Ethernet”).
- Terminal или доступ по SSH к машине.
Важно: команды затрагивают системные настройки сети. Убедитесь, что вы понимаете, какой интерфейс меняете.
Основная команда — как это работает
Команда networksetup управляет сетевыми настройками macOS. Мы используем только параметр, который меняет DNS.
Откройте Terminal (Launchpad → Terminal) и выполните команду:
networksetup -setdnsservers Wi-Fi 208.67.222.222Параметры:
- networksetup — утилита для управления сетью.
- -setdnsservers — флаг для установки DNS-серверов.
- Wi-Fi — имя сетевого сервиса (интерфейса).
- 208.67.222.222 — IP выбранного DNS-сервера.

После нажатия Enter вас попросят ввести пароль администратора. Введите пароль и подтвердите изменение, если появится системный диалог.

Terminal не выводит «успешно» в явном виде. Если ошибок нет, команда отработала нормально.
Добавление нескольких резервных DNS-серверов
Чтобы задать несколько серверов, перечислите их через пробел:
networksetup -setdnsservers Wi-Fi 208.67.222.222 208.67.220.220
Система будет использовать их в указанном порядке. Чем больше резервов — тем выше вероятность доступности разрешения имён, но порядок важен для производительности.
Как проверить текущие DNS-серверы
Чтобы посмотреть текущую конфигурацию DNS для интерфейса, выполните:
networksetup -getdnsservers Wi-Fi
Если система вернёт “There aren’t any DNS Servers set on Wi-Fi.”, значит для этого сервиса DNS не настроен и используется авто-настройка (DHCP) или системные значения по умолчанию.
Очистка кэша DNS
После смены DNS рекомендуется очистить локальный кэш, чтобы система сразу начала использовать новые сервера. Команда зависит от версии macOS:
- Для современных версий macOS обычно работает:
sudo killall -HUP mDNSResponder- В старых версиях (ранний Yosemite) использовалась:
sudo discoveryutil mdnsflushcache- Альтернатива, которую можно попробовать при ошибках:
sudo dscacheutil -flushcache
Важно: используйте команду, подходящую вашей версии macOS. Если unsure, сначала выполните killall mDNSResponder — она работает на большинстве современных выпусков.
Частые ошибки и когда метод не сработает
- Неправильное имя сервиса: вместо “Wi-Fi” в вашей системе сервис может называться иначе (например, “Wi‑Fi” с дефисом или локализованное имя). Проверьте список сервисов:
networksetup -listallnetworkservices- Профили управления устройством (MDM) могут перекрывать настройки DNS.
- Отсутствие прав администратора.
- Системный кэш или приложения могут кэшировать DNS; в таких случаях перезапустите приложение или систему.
Альтернативные подходы
- Откройте Системные настройки → Сеть → выберите интерфейс → Дополнительно → DNS (GUI).
- Используйте scutil для глубокой диагностики и назначения параметров.
- На уровне роутера задайте DNS для всей сети.
Шпаргалка — основные команды
- Установить один сервер:
networksetup -setdnsservers - Установить несколько серверов:
networksetup -setdnsservers ... - Просмотреть сервера:
networksetup -getdnsservers - Список сетевых сервисов:
networksetup -listallnetworkservices- Сброс кэша DNS (обычно):
sudo killall -HUP mDNSResponderРекомендации по безопасности и конфиденциальности
- Используйте доверенные DNS-поставщики (например, провайдеры с политикой конфиденциальности или DNS-over-HTTPS/DoT, если требуется).
- Не вводите произвольные IP из ненадёжных источников.
- На управляемых устройствах проконсультируйтесь с администратором перед изменением настроек.
Роль‑ориентированные чеклисты
Для системного администратора:
- Проверить имя сетевого сервиса.
- Задать серверы и проверить через getdnsservers.
- Очистить кэш и убедиться в разрешении доменов.
Для обычного пользователя:
- Сохранить текущие настройки (скриншот или экспорт).
- Ввести команду с одним сервером для теста.
- Вернуть старые значения при проблемах.
Критерии приёмки
- Команда отработала без ошибок в Terminal.
- networksetup -getdnsservers возвращает новые IP.
- Веб-сайты корректно разрешаются после очистки кэша.
Краткое резюме
Изменение DNS в Terminal — быстрый и надёжный способ управлять резолвингом имён на Mac, особенно при удалённом доступе или проблемах с GUI. Всегда проверяйте имя сервиса, используйте правильную команду очистки кэша для вашей версии macOS и возвращайте прежние настройки при необходимости.
Важно: если ваше устройство управляется организацией (MDM), изменения могут быть запрещены или перезаписаны.
Похожие материалы
Скрыть игровую активность на Nintendo Switch
GameMode: ускорение игр в Linux
Как включить Timeline в Facebook
Включение ping в Windows 10
Изменить значки плиток меню Пуск в Windows 10