WoL работает путем отправки специально отформатированного пакета Ethernet на MAC-адрес вашего компьютера. Если вы находитесь в локальной сети (LAN), вы можете напрямую общаться с MAC-адресом вашего компьютера, и WoL работает все время довольно счастливо.
Из любой точки локальной сети вы полагаетесь на IP-маршрутизацию для пересылки пакетов, инкапсулированных в IP, по сети, чтобы добраться до вашего компьютера. Эта пересылка зависит от ARP (Address Resolution Protocol) на последнем переходе (ваш маршрутизатор к вашему компьютеру).
Ваш маршрутизатор ведет учет того, какие IP-адреса сопоставлены с какими MAC-адресами - таблицей ARP, - которые периодически удаляют устаревшие записи.
При нормальной работе сети маршрутизатор сначала отправляет пакет ARP WHOHAS всем компьютерам в сети (MAC-адрес ff: ff: ff: ff: ff: ff), запрашивая компьютер, на котором указан IP-адрес, указанный в пакете, чтобы ответить Пакет ARP HAS заявляет, что у него есть IP-адрес. Это кэшируется в таблице ARP в течение определенного периода времени.
Если компьютер переключен (или находится в спящем режиме), сетевой стек больше не может отвечать ни на что, поэтому запрос ARP WHOHAS никогда не выполняется - поэтому маршрутизатор не может определить, куда отправлять пакет, и, следовательно, WoL не работает.
Есть 2 возможных пути решения этой проблемы:
- Настройте статическую запись ARP на маршрутизаторе
Это, безусловно, самое простое, если у маршрутизатора есть возможность постоянного сохранения сопоставления MAC-> IP. Это избавит ARP от необходимости определять MAC-адрес вашего компьютера.
- Есть другое сетевое устройство в локальной сети, которое никогда не спит и способно выполнить WoL для вас.
Кажется, на самом деле победить объект, но это может быть единственный способ сделать удаленный WoL.