macOS

Диагностика сетевых проблем на macOS: пошаговое руководство

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

Обновлено 16 февраля 2026 г.
15-30 мин
Средняя
FixPedia Team
Применимо к:macOS Sonoma (14.x)macOS Ventura (13.x)macOS Monterey (12.x)

Введение / Зачем это нужно

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

Требования / Подготовка

Перед началом убедитесь, что:

  1. У вас есть доступ к учётной записи с правами администратора (для команд sudo).
  2. Терминал (Terminal) доступен в Программы -> Утилиты или через Spotlight (Cmd+Пробел, введите "Terminal").
  3. Вы знаете IP-адрес вашего роутера (обычно 192.168.1.1 или 192.168.0.1). Если не знаете, узнайте его на любом другом устройстве в сети (например, в настройках Wi-Fi на iPhone: Сеть -> [ваша сеть] -> router).
  4. У вас стабильное электропитание (особенно на этапе переименования системных файлов).

Пошаговая инструкция

Шаг 1: Базовая проверка физического подключения и интерфейсов

Сначала определите, какие сетевые интерфейсы активны и видны системе.

  1. Откройте Terminal.
  2. Выполните команду:
ifconfig

Она выведет список всех сетевых интерфейсов. Нас интересуют:

  • en0 (обычно Ethernet)
  • en1 (может быть второй Ethernet или Wi-Fi)
  • utun (VPN-туннели)
  • awdl0 (Apple Wireless Direct Link, для AirDrop и т.д.)
  1. Найдите активный интерфейс (у него будет IP-адрес после inet, например inet 192.168.1.102). Если у нужного интерфейса (например, en0 для проводного соединения) нет inet-адреса, значит, он не получил IP от DHCP-сервера (роутера). Если интерфейса вообще нет в списке, возможно, проблема на уровне драйвера или аппаратная.

Шаг 2: Проверка связи по цепочке: локальная сеть -> шлюз -> интернет

Это ключевой тест, который разделяет проблемы на три категории.

  1. Пингуем роутер (локальный сегмент):
ping -c 5 192.168.1.1

(замените 192.168.1.1 на IP вашего роутера).

  • Успех (0% потерь): связь с роутером есть, проблема дальше.
  • Неудача (100% потерь): либо роутер не отвечает на ping (это нормально для некоторых моделей, если отключен ICMP-ответ), либо физическое/канальное соединение не работает.
  1. Пингуем публичный DNS (интернет):
ping -c 5 8.8.8.8
  • Успех: интернет works, проблема в DNS (см. Шаг 3).
  • Неудача: либо нет маршрута до шлюза, либо шлюз не работает, либо у провайдера проблемы.
  1. Пингуем доменное имя (проверка DNS):
ping -c 5 google.com
  • Успех: DNS работает.
  • Неудача (но ping 8.8.8.8 работает): проблема точно в разрешении имен. Перейдите к Шагу 3.

Шаг 3: Анализ таблицы маршрутизации и DNS-серверов

Если пинг до 8.8.8.8 не проходит, но до роутера проходит, смотрите таблицу маршрутизации.

netstat -nr

В выводе найдите строку с default (шлюз по умолчанию). Убедитесь, что в колонке Gateway указан IP вашего роутера (например, 192.168.1.1). Если там -- или другой IP, маршрут не настроен.

Далее проверьте DNS:

scutil --dns

В секции resolver найдите nameserver[0]. Это должен быть IP вашего роутера или публичный DNS (8.8.8.8, 1.1.1.1). Если там пусто или указан нерабочий адрес, это причина.

Для быстрой смены DNS на публичный Google DNS (если нужно тестировать) можно временно добавить:

sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

(замените Wi-Fi на Ethernet для проводного соединения). После теста верните автоматическое определение: sudo networksetup -setdnsservers Wi-Fi Automatic.

Шаг 4: Перезапись конфигурационных файлов сети

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

  1. Откройте Terminal.
  2. Переименуйте папку с конфигурацией (это потребует sudo):
sudo mv /Library/Preferences/SystemConfiguration /Library/Preferences/SystemConfiguration.bak
  1. Перезагрузите Mac ( -> Перезагрузка).

После загрузки система создаст новую папку SystemConfiguration с чистыми файлами (например, com.apple.airport.preferences.plist, NetworkInterfaces.plist). Вам, возможно, потребуется заново подключиться к Wi-Fi сети (ввести пароль).

Шаг 5: Сброс кэша DNS и служб подключения

Иногда помогает принудительный сброс кэшей.

  1. Очистите кэш DNS:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
  1. Перезапустите службу сети (более грубый метод):
sudo ifconfig en0 down  # замените en0 на ваш интерфейс
sudo ifconfig en0 up

Или перезагрузите Mac.

Проверка результата

После каждого шага (особенно после Шагов 4 и 5) выполняйте тесты из Шага 2:

  1. ping -c 4 192.168.1.1 (роутер)
  2. ping -c 4 8.8.8.8 (интернет)
  3. ping -c 4 google.com (DNS)

Успешным результатом считается 0% потерь пакетов на всех трёх этапах. Также проверьте открытие сайтов в браузере.

Если проблема осталась, переходите к следующему шагу или разделу "Возможные проблемы".

Возможные проблемы

Ошибка: ping: sendto: Operation not permitted

Причина: Брандмауэр (Firewall) или родительский контроль блокирует исходящие ICMP-запросы. Решение: Временно отключите брандмауэр в Системные настройки -> Защита и безопасность -> Брандмауэр. Или выполните sudo pfctl -d (если используется PF).

Ошибка: ifconfig: interface en0 does not exist

Причина: Интерфейс переименован (часто после обновления macOS) или драйвер не загружен. Решение: Найдите точное имя интерфейса через ifconfig | grep status. Или проверьте, виден ли адаптер в Системные настройки -> Сеть. Если нет — перезагрузите Mac.

После переименования папки SystemConfiguration не появляется Wi-Fi в настройках

Причина: Система не успела создать новые файлы, или есть проблемы с правами. Решение: Проверьте, что папка SystemConfiguration теперь существует (ls /Library/Preferences/SystemConfiguration). Если нет — переименуйте обратно: sudo mv /Library/Preferences/SystemConfiguration.bak /Library/Preferences/SystemConfiguration и перезагрузите. Затем попробуйте создать новую сеть через интерфейс.

Пинг до роутера проходит, но браузер не загружает страницы

Причина: Проблема на уровне HTTP/HTTPS (порт 80/443), возможно, блокировка провайдером или неправильные настройки прокси. Решение: Проверьте прокси: scutil --proxy. Должно быть HTTP Proxies: <null>. Если есть прокси, отключите в настройках сети. Также попробуйте curl -I https://google.com для проверки заголовков.

Сеть работает, но после сна Mac не подключается

Причина: Устаревшие или конфликтующие параметры энергосбережения для Wi-Fi. Решение: В Terminal выполните:

sudo pmset -a womp 1  # Wake on Wi-Fi
sudo pmset -a networkoversleep 0

Или сбросьте настройки Wi-Fi (Шаг 4) — часто это решает проблему.

FAQ

Что делать, если все шаги не помогли, а проблема только на этом Mac? Вероятно, аппаратная неисправность сетевой карты (особенно для Ethernet) или конфликт с сторонним ПО (антивирус, VPN-клиент). Попробуйте загрузиться в Безопасном режиме (удерживайте Shift при загрузке) и проверьте сеть. Если в Безопасном режиме работает — проблема в стороннем расширении ядра (KEXT).

Как диагностировать проблему, если у меня только Wi-Fi, и я не могу подключиться по кабелю? Используйте утилиту airport для детальной информации о Wi-Fi. В Terminal:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s

(список сетей) и

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I

(текущая статистика: RSSI, скорость, BSSID). Низкий RSSI (< -70 dBm) указывает на слабый сигнал.

Можно ли автоматизировать диагностику? Да, есть скрипты, например netdiag (от Apple в пакете Additional Tools for Xcode), но встроенных средств достаточно. Вы можете создать свой bash-скрипт, объединяющий ping, ifconfig и netstat.

Безопасно ли использовать команды sudo из этого гайда? Да, все команды (mv, networksetup, dscacheutil) безопасны при правильном использовании. Однако внимательно проверяйте пути и имена интерфейсов (en0, en1). Ошибочное удаление системных файлов вне папки SystemConfiguration может навредить системе.

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

Что делать, если ping до роутера не проходит, но до 8.8.8.8 проходит?
Можно ли диагностировать сеть без Terminal, только через интерфейс?
Почему после сброса SMC и PRAM/NVRAM сеть не заработала?
Безопасно ли удалять файлы конфигурации сети из /Library/Preferences/SystemConfiguration?

Полезное

Базовая проверка физического подключения и интерфейсов
Проверка связи по цепочке: локальная сеть -> шлюз -> интернет
Анализ таблицы маршрутизации и DNS-серверов
Перезапись конфигурационных файлов сети
Сброс кэша DNS и служб подключения