Хорошо, в сети не так много хорошей информации об этом, так что вот моя мудрость:
Как работает Wake-on-LAN
Таким образом, весь смысл WoL заключается в том, чтобы включить компьютер удаленно с помощью сети. Очевидно, что если ваш компьютер был фактически полностью выключен, то это никак не могло бы сработать, поэтому, когда современные компьютеры выключены, карта Ethernet фактически остается включенной (надеюсь) в состоянии низкого энергопотребления, прослушивая пакеты WoL.
Когда WoL был впервые создан, вы могли настроить свою сетевую карту так, чтобы сигнал BIOS включал ваш компьютер при любой сетевой активности. То есть всякий раз, когда сетевой адаптер (или, возможно, IP-пакет; я не уверен на 100%) виден сетевой картой. Кажется разумным, но в действительности это бесполезно, потому что случайные пакеты, летящие по сети, будут разбудить ваш компьютер без причины. Чтобы это исправить, кто-то изобрел MagicPacket ™! При установке вашей карты в режим MagicPacket ™ он будет будить компьютер только тогда, когда он увидит данные, содержащие MAC-адрес вашей сетевой карты, повторенный 6 раз (насколько я помню). Теперь случайные пакеты не будут раздражать ваш компьютер. Это также причина, по которой вам нужно поместить свой MAC-адрес в инструменты WoL; так что он может построить MagicPacket ™.
Вы могли заметить небольшой недостаток MagicPacket ™: любой человек в сети может видеть ваш MAC-адрес, поэтому, если вы пытаетесь использовать WoL в ненадежной локальной сети (например, в университете), раздражающие люди могут продолжать будить ваш компьютер. Не цитируйте меня об этом, но, глядя на ethtool
справочную страницу, похоже, что кто-то "изобрел" SecureOn ™ для MagicPacket ™. Это, очевидно, позволяет вам установить MAC-адрес, который прослушивает ваша карта, эффективно превращая его в частный пароль.
Как пакет попадает на ваш компьютер
Теперь вот сложная часть. Ethernet был разработан для отправки данных между компьютерами, которые включены. Это плохо работает с WoL, который хочет отправлять пакеты на выключенные компьютеры.
Первое препятствие состоит в том, что у выключенных компьютеров действительно нет IP-адресов. Поэтому вы не можете отправить пакет WoL на IP-адрес (инструменты, которые позволяют вам ввести свой IP-адрес, действительно запрашивают IP-адрес маршрутизатора, который включен). Вместо этого пакеты WoL транслируются на каждое подключенное устройство Ethernet. В хороших маршрутизаторах вы можете вручную связать IP-адрес с MAC-адресом, но большинство маршрутизаторов этого не допускают, и отбрасывают IP-пакеты, отправленные на другие компьютеры.
Трансляция пакетов работает, но есть проблема ...
Почему это не очень хорошо
Проблема в том, что большинство маршрутизаторов не позволяют пересылать пакеты на широковещательный адрес. В идеале то, что вы хотите в типичном «Я на работе, и я хочу вещи с моего домашнего компьютера», настройка WoL - это пересылка с внешнего порта 9 (например, см. Ниже) на 255.255.255.255:9. Маршрутизаторы просто не будут этого делать. В конце концов, я действительно узнал, как это сделать для ADSL-роутера speedtouch, но это потребовало ручного редактирования конфигурационных файлов.
Вероятно, единственный реальный способ заставить это работать - это установить достойную прошивку стороннего маршрутизатора, такую как Tomato или DD-WRT. У них есть инструменты WoL, встроенные в веб-интерфейс. Это не так аккуратно, потому что вы не можете делать такие крутые вещи, как использование телефона для автоматического пробуждения компьютера, когда вы вернетесь домой. Но все равно. Я на самом деле не пробовал, но вы можете получить эти прошивки для прямой трансляции. Кто знает.
Порт 7 и Порт 9
Многие гиды говорят , что вы должны использовать порт 7 или вы должны использовать порт 9, и вы думаете , «почему?», «Какой?». Ответ не имеет значения. Вы можете использовать любой порт; 80, 666, это не имеет значения. Сетевая карта на вашем компьютере не заботится о том, на какой порт отправляется MagicPacket ™, до тех пор, пока он его получает, и в нем повторяется MAC-адрес. И если вам удастся заставить работать WoL-переадресацию, вы также можете использовать любой порт (а затем вставить соответствующий порт в инструмент WoL).
7 и 9 рекомендуются потому, что они были портами, которые использовались парой совершенно бесполезных серверов, которые никто не использовал с 80-х годов. Так же, как порт 80 является портом для Интернета, порт 7 является портом для «эхо-сервера», который повторяет все назад отправителю, и представляет собой серьезную уязвимость безопасности, а порт 9 является портом для «отбрасывающего» сервера, который просто отбрасывает все полученные данные и никогда ничего не отправляет обратно. Сейчас они совершенно бесполезны, но, думаю, возможно, они были хороши для тестирования сети, когда Интернет был новым (70-е годы).
Устранение неполадок - Мой компьютер не включается!
Первое , что нужно проверить , что вы получите MagicPacket ™ , когда ваш компьютер находится в . Для этого загрузите wireshark (google it), попросите его прослушать порт 9 (или 7 или любой другой) и отправить пакет WoL. Вы должны это увидеть. Если вы этого не сделаете, проблему будет относительно легко решить или, по крайней мере, диагностировать.
Если вы получаете пакет, но ваш компьютер все равно не включается, он становится немного сложнее.
Сначала зайдите в BIOS / UEFI и убедитесь, что включена опция типа «Разрешить PCI разбудить компьютер» или аналогичная. Также включите опцию PCIe. Во-вторых, на Linux используйте ethtool
для включения WoL для вашей сетевой карты. Нечто подобное ethtool -s eth0 wol bgm
. В окнах вы найдете опцию «Разрешить это устройство, чтобы разбудить компьютер», и, возможно, где-то есть варианты MagicPacket ™. Я не знаю, я не использую окна прямо сейчас.
Теперь, надеюсь, это сработает. Но, возможно, он работает только в течение нескольких минут (или даже секунд) после выключения компьютера! о нет! Это проблема с роутером. Я рекомендую вам получить другой. Серьезно, Tomato-USB потрясающий.