Битлента
Сетевые команды и утилиты5 мин чтения·

networksetup в macOS: список сетевых служб и настройка DNS из терминала

Как использовать networksetup на macOS: показать сетевые службы, прочитать и изменить DNS-серверы, сбросить настройки и найти порты оборудования.

Кратко

Утилита networksetup управляет сетевыми службами macOS из терминала. Команда -listallnetworkservices показывает службы, -getdnsservers читает DNS, а -setdnsservers с параметром empty возвращает автоматические настройки.

Что такое networksetup и когда она нужна

Утилита networksetup входит в состав macOS и повторяет то, что вы делаете в разделе сетевых настроек системы, только из командной строки. Она пригодна там, где нужно проверить настройки быстро, выполнить их на нескольких компьютерах или записать порядок действий в скрипт.

Основная особенность: утилита работает не с именами интерфейсов вроде en0, а с названиями сетевых служб, такими как Wi-Fi или Ethernet. Служба — это настроенный способ подключения, а интерфейс — аппаратное устройство под ним. Если названия в интерфейсе системы на вашем языке выглядят иначе, пользуйтесь теми, что выводит сама команда, и берите их в кавычки, когда в названии есть пробелы.

Чтение настроек обычно проходит без пароля, а изменение требует прав администратора. Перед любым изменением полезно записать текущие значения: вернуть их потом проще, чем вспоминать.

Основные команды: чтение

Начните с обзора. Ниже самые полезные команды чтения, у каждой есть широкая область применения.

КомандаРезультат
networksetup -listallnetworkservicesНазвания всех сетевых служб
networksetup -listallhardwareportsСоответствие аппаратных портов устройствам en0, en1 и т. д.
networksetup -getinfo "Wi-Fi"IP, маска, шлюз и MAC для службы
networksetup -getdnsservers "Wi-Fi"Заданные вручную DNS-серверы
networksetup -getsearchdomains "Wi-Fi"Поисковые домены
networksetup -getmtu en0Значение MTU интерфейса

В выводе -listallnetworkservices первая строка — пояснение о том, что звёздочка у названия означает отключённую службу. Это не ошибка, а часть вывода. Отключённые службы вы увидите по знаку перед названием.

Если для службы DNS вручную не заданы, команда -getdnsservers сообщит, что для этой службы DNS-серверов нет. Это не значит, что DNS не работает: в таком случае используются адреса, выданные роутером по DHCP. Увидеть, какие адреса реально применяются, поможет команда scutil --dns.

Смена DNS и возврат к автоматическим настройкам

Задать свои DNS-серверы для службы можно одной командой: sudo networksetup -setdnsservers "Wi-Fi" 192.0.2.1 192.0.2.2. Вместо документационных адресов подставьте реальные адреса выбранного вами DNS-сервиса. Можно указать один адрес или несколько через пробел.

Чтобы вернуть автоматическое получение, используйте слово empty: sudo networksetup -setdnsservers "Wi-Fi" empty. После этого служба снова станет брать DNS у роутера. Обратите внимание, что просто убрать адреса пустой строкой нельзя, нужно именно слово empty.

Порядок действий для безопасного эксперимента:

  1. Сохраните текущее значение: networksetup -getdnsservers "Wi-Fi".
  2. Задайте новые адреса и проверьте открытие нескольких сайтов.
  3. Проверьте, какие серверы отвечают, запросом через dig или nslookup.
  4. Если что-то сломалось, выполните команду с empty.

Иногда после смены DNS старые ответы ещё живут в кэше. Как его сбросить, описано на странице про очистку DNS-кэша в macOS. Подробный разбор настройки DNS через графический интерфейс системы есть в отдельной инструкции.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Другие полезные операции

Утилита умеет не только DNS. Часть операций применяют редко, но знать о них полезно.

Для включения и выключения службы есть пара -setnetworkserviceenabled: имя службы и значение on или off. Это быстрый способ отключить Wi-Fi или кабель, если нужно проверить работу через другой канал. Питание Wi-Fi переключают командой -setairportpower с именем устройства и значением on или off.

Адрес можно задать вручную: ключ -setmanual принимает имя службы, адрес, маску и шлюз. Вернуть автоматическое получение можно ключом -setdhcp. Менять адреса вручную стоит только тогда, когда вы точно понимаете, какие значения нужны в вашей сети, иначе связь пропадёт.

Есть возможность задавать поисковые домены, имена компьютеров и другие параметры, а полный перечень ключей выводится при запуске networksetup без аргументов либо командой man networksetup. Часть ключей зависит от версии macOS, поэтому ориентируйтесь на справку своей системы, а не на чужие инструкции из интернета.

Типичные ошибки при работе с networksetup

Чаще всего проблемы возникают из-за названия службы. Если вы напишете название без кавычек там, где в нём есть пробел, команда решит, что слов несколько, и сообщит об ошибке параметров. Копируйте название из вывода -listallnetworkservices.

Вторая ошибка — путать службу и интерфейс. В -getinfo и -setdnsservers нужно название службы, а в -getmtu и -setairportpower используется имя устройства. Сопоставить их поможет -listallhardwareports.

Третья ситуация: команда выполнена, а в приложениях ничего не изменилось. Причины бывают разные: браузер использует собственный механизм DNS, кэш хранит прежний ответ, либо система применяет другую службу из-за порядка их приоритетов. Порядок служб задаётся в сетевых настройках системы и выводится командой networksetup -listnetworkserviceorder.

Если после правок связь пропала, откатитесь: верните DNS через empty, а адрес через -setdhcp, и перезапустите службу выключением и включением.

Перед изменениями: резервная запись настроек

Прежде чем менять сетевые параметры из терминала, зафиксируйте исходное состояние. Это занимает минуту и избавляет от долгих поисков при сбое.

  1. Сохраните вывод -listallnetworkservices и -getinfo для нужной службы в текстовый файл.
  2. Отдельно запишите результат -getdnsservers: пустой ответ тоже важен, он означает автоматические настройки.
  3. Убедитесь, что у вас есть второй способ выйти в сеть, например кабель или раздача с телефона, если меняете настройки основной службы.
  4. Меняйте один параметр за раз и проверяйте результат, прежде чем переходить к следующему.

Если вы работаете на рабочем компьютере, управляемом организацией, настройки могут контролироваться политикой. Тогда изменения вернутся к прежнему виду или не применятся, и это не ошибка команды. В таком случае обратитесь к администратору, не пытаясь менять заданные ограничения самостоятельно.

Хорошая практика — после любого изменения проверить результат двумя способами: прочитать значение той же командой с префиксом get и открыть в браузере несколько разных сайтов. Так вы быстро заметите, что имена перестали разрешаться, и успеете вернуть прежнее значение, пока не накопилось других правок.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
macosnetworksetupdnsтерминал

Часто задаваемые вопросы

Читайте также