Пробуждение Mac по сети: Wake-on-LAN
На снимках показан интерфейс на английском. Названия кнопок в тексте соответствуют языку приложения.
Спящего Mac все еще можно разбудить, если он не спит слишком глубоко.
Mac спит и не подключается?
Проведите пальцем влево по нему в списке сопряженных устройств и выберите «Разбудить» (Разбудить-on-LAN), затем подключитесь. Предварительное условие: «Выводить из режима сна для доступа к сети» включен в системных настройках Mac → Аккумулятор/Энергия; он наиболее надежен при подключении к сети или проводном Ethernet.
Он просыпается, но все равно не подключается.
- Mac должен оставаться включенным при работающем TouchNow Host — приложение для выхода не принимает никаких соединений.
- Не закрывайте крышку MacBook; закрытие его немедленно переводит машину в режим сна.
- Оставляйте его включенным, когда уходите. При работе от батареи macOS также выключает Wi-Fi, и ничто удаленное не может его разбудить.
- В настройках системы включите «Не переходить в режим сна автоматически при выключенном дисплее». Он находится под Аккумулятор → Параметры на MacBook и под Экономия энергии на настольном компьютере Mac. Экран по-прежнему темнеет; машина просто не спит.
Он проснулся, но картинка так и не появляется.
Когда Wake-on-LAN выводит ваш Mac из спящего режима, он входит DarkWake: машина работает, сеть активна, и хост принимает ваше соединение, но на дисплее еще нет питания. Отсутствие дисплея означает отсутствие кадрового буфера, поэтому API захвата экрана запускается успешно, а затем доставляет ноль кадров. Вы видите «подключено, но зависло при получении».
Это не медленная сеть и не отсутствие разрешения. «Предотвращение сна системы в режиме ожидания» в macOS здесь не поможет, потому что за DarkWake следует режим «Maintenance Sleep», а не режим ожидания.
TouchNow Host обрабатывает это, объявляя активность пользователя (IOPMAssertionDeclareUserActivity), когда он обнаруживает, что дисплей все еще находится в спящем режиме. По измерениям на наших машинах, DarkWake полностью активируется и подсвечивается экран внутри. 38 миллисекунд. Захват задерживается до тех пор, пока дисплей не проснется (до 6 секунд), поэтому он никогда не вращается, когда нечего записывать.
Чтобы проверить это самостоятельно, запустите pmset -g log на Mac и найдите DarkWake линии. Успешное пробуждение регистрируется как HID Activity.
Вы также можете разбудить его снаружи вашего Wi-Fi — но срок его действия истекает.
Пакет Wake-on-LAN передается только в пределах одной локальной сети, поэтому теоретически вы не сможете разбудить свой Mac с дороги. На практике (измерение на macOS 26, Apple Silicon) спящий Mac все равно просыпается другим путем.
Пока macOS спит, сетевая карта поддерживает уже установленные соединения TCP. — ты можешь видеть TCPKeepAlive=активный в pmset -g журнал. Сигнальное соединение хоста остается в комнате во время сна, поэтому, когда ваш iPhone присоединяется, уведомления, которое отправляет сервер, достаточно, чтобы вызвать DarkWake (зарегистрированный как wifibt пробуждение). Это работает во всех сетях и не требует настройки маршрутизатора.
Но срок его действия истекает. В журнале показано powerd request=TCPKATurnOff wakeAt= , за которым следует время примерно на четыре дня — сон дольше, и механизм тихо выключается, поэтому может возникнуть ощущение, что «иногда он просыпается, иногда нет». Если вы будете отсутствовать в течение длительного времени, более надежно держать Mac в режиме ожидания или включать «Не переходить в режим сна автоматически при выключенном дисплее».
Одна вещь, которую часто путают: спящий MacBook. при включении батареи полностью выключает Wi-Fi, поэтому Wake-on-LAN не может работать — это ограничение Apple. В наших тестах путь TCP-keepalive, описанный выше, по-прежнему работал при заряде батареи 2%. Это не один и тот же механизм.