Пробудження сплячого домашнього ПК через VPN: звідки приходить пакет
Тунель не може розбудити машину, яку він сам завершує. Розмістіть magic packet у домашній LAN, перевірте адаптер і стан живлення, потім підключіться.
Ви підключаєтеся, маршрутизатор відповідає, а настільний комп’ютер залишається темним. Тунель гаразд; пакет, який мав розбудити машину, так і не дійшов до сегмента, де машина слухає. Якщо пройти шлях від маршрутизатора назад, видно, де він помирає.
Три пристрої мають три завдання. Їх змішування — звичайна причина того, що спроба пробудження крутиться безкінечно.
Почніть із віддаленого клієнта і пройдіть шляхом
З готельної мережі ви підключаєтеся до домашнього маршрутизатора, єдиної постійно активної кінцевої точки на малюнку. Запит на пробудження, набраний на ноутбуці, стає звичайним трафіком тунелю, адресованим будь-якому призначенню, яке ви назвали. Це призначення вирішує все наступне.
Якщо ви надіслали його на LAN-адресу домашнього маршрутизатора на порт magic packet, маршрутизатор може прийняти датаграму і ніколи не видати кадр у домашній сегмент, бо там ніщо не слухає цей порт. Якщо ви широкомовно розсилаєте його всередині тунелю, він зупиняється на інтерфейсі тунелю. Маршрутизований тунель не є розширенням рівня 2 домашньої проводки. Пройдіть шлях крок за кроком, і глухий кут стає очевидним.
Перевірка, яка це вирішує, потребує однієї команди з віддаленого боку і однієї з домашнього. Надішліть запит, потім спостерігайте за домашнім сегментом щодо кадру.
Перемістіть відправника в домашній сегмент
Маршрутизатор може виконати пробудження сам, щойно ви автентифікуєтеся через тунель. OpenWrt документує службу Wake-on-LAN, яка працює на пристрої і видає кадр локально, і це саме потрібна форма: віддалена автентифікація зовні, локальна розсилка всередині.
Така схема також тримає функцію пробудження подалі від публічного інтернету. Нічого нового не виставляється в інтернет, бо тригер іде через VPN, якому ви вже довіряєте. Альтернатива — служба пробудження з перенаправленим портом — обмінює невелику зручність на обернену в інтернет кінцеву точку, яку може перевірити будь-хто.
Циклічну залежність варто назвати прямо. VPN-клієнт, встановлений на настільному комп’ютері, не може розбудити цей комп’ютер, бо процесу клієнта потрібна працююча машина. Тримайте віддалену точку входу на маршрутизаторі або іншому завжди ввімкненому пристрої, а настільний комп’ютер нехай буде лише ціллю.
Підтвердіть ціль, перш ніж звинувачувати тунель
Цю частину вирішує апаратне забезпечення, а не VPN, і стан живлення вирішує її першим. Адаптер має підтримувати пробудження, прошивка має залишати адаптер під живленням у сні, а операційна система має бути налаштована це дозволяти. Призупинена машина — інший випадок, ніж вимкнена, і обидва відрізняються від машини, у якої живлення вимкнено біля стіни. З’ясуйте цей стан, перш ніж проходити решту списку.
Зчитайте апаратну адресу з адаптера, який справді прийме кадр. Настільний комп’ютер з Ethernet і Wi-Fi часто має дві адреси, і лише одна з них може вміти пробуджувати. Бездротове пробудження — окрема можливість із власними вимогами до прошивки, тож робоче пробудження через Ethernet нічого не каже про пробудження через Wi-Fi.
Спочатку доведіть локальний шлях. Надішліть magic packet з іншого пристрою на тому самому комутаторі і дивіться, як машина піднімається. Якщо це не вдається, жодне налагодження тунелю не допоможе, і несправність у прошивці, налаштуваннях адаптера або стані живлення.
Після пробудження підключіться до потрібної служби
Пробудження — це не віддалений доступ. Після того як машина продовжить роботу, їй ще треба завантажити свої служби, отримати адресу і прийняти сеанс, який вам справді потрібен. Дайте їй час досягти цього стану, перш ніж робити висновок, що пробудження не вдалося.
# remote side: trigger the wake through the already-authenticated tunnel
ssh [email protected] 'wol -i br-lan 3c:7a:8f:2b:11:04'
# home side: is the target answering on the LAN?
ping -c 3 10.10.0.42
arp -n 10.10.0.42
Рядок arp — корисний. Запис, що змінюється з неповного на справжню апаратну адресу, означає, що машина продовжила роботу і відповіла; запит, який ніколи не розв’язується, вказує назад на крок пробудження, а не на службу, до якої ви намагалися дістатися.
Розділяйте етапи в нотатках: пробудження, завантаження, служба. Збій на другому етапі з вікна чату виглядає так само, як збій на першому, і розрізнити їх може лише локальний доказ.