Wake on LAN przez Internet

Wake on LAN jest to funkcja wprowadzona w kompaturach z płytami głównymi standardu ATX. Pozwala ona włączyć komputer znajdujący się w obrębie sieci lokalnej wysyłając do karty sieciowej specjalny pakiet – MagicPacket. Pakiet ten wysyłany jest na na adres rozgłoszeniowy (ang. broadcast) sieci LAN lub do konkretnego komputera w sieci LAN. Pakiet jest wysyłany protokołem UDP, zwykle na portach 7 lub 9, ale równie skutecznie działa na każdym innym dowolnym porcie. Wake on LAN over Internet jest natomiast próbą wykorzystania funkcji Wake on LAN poprzez wysłanie owego pakietu z Internetu (WAN-u) a nie sieci lokalnej (LAN-u). W sieci jest wiele takich stron, które pozwalają skorzystać z funkcji Wake on LAN over Internet. Niestety nie wystarczy wyłączyć komputer a potem wejść z innego na taką stronę podać zewnętrzny adres IP naszego komputera oraz adres MAC karty sieciowej i mamy włączony komputer. O co to to nie, najpierw musimy odpowiednio skonfigurować nasz sprzęt.

Konfiguracja BIOS

W BIOS-ie w sekcji Power Management należy włączyć funkcję Wake on LAN. W zależności od wersji funkcja ta może się różnie nazywać np:. Power On By LAN, Power On By PME, Power Up By LAN, Remote Wake-up, Resume by LAN, Resume on LAN, Wake Up On LAN lub podobnie.

Konfiguracja Windows Vista / 7

Domyślnie ustawienia Windows Vista / 7 pozwalają od razu korzystać z funkcji Wake on LAN. Czy tak faktycznie jest upewniamy się klikając prawym przyciskiem myszki na Komputer, następnie Właściwości -> Menedżer urządzeń -> Karty sieciowe -> karta, która ma budzić komputer -> Właściwości – > Zarządzenie energią. Powinniśmy mieć zaznaczone wszystkie opcje, jak na poniższym obrazku:

Karta sieciowa - zarządzanie energią

Karta sieciowa – zarządzanie energią

Konfiguracja Windows XP

W przypadku Windowsa XP wzbudzanie ze stanu pełnego wyłączenia (S5) również działa od razu. Zależy nam jednak aby móc budzić komputer również ze stanu wstrzymania (S1 / S3) i hibernacji (S4). W tym celu przechodzimy do opcji karty sieciowej w sobób opisany powyżej i zaznaczamy tam opcję Zezwalaj temu urządzeniu na wyprowadzanie komputera ze stanu wstrzymania:

Zezwalaj temu urządzeniu na wyprowadzanie komputera ze stanu wstrzymania

Zezwalaj temu urządzeniu na wyprowadzanie komputera ze stanu wstrzymania

Konfiguracja Linuksa Debian / Ubuntu / Linux Mint / LMDE

W przypadku Linuksa czeka nas więcej pracy. Pierwszą rzeczą jaką musimy zrobić, to należy zainstalować komendę ethtool:

Teraz sprawdzamy, czy funkcję Wake On LAN (WOL) wspiera nasza karta sieciowa, robimy to wydając polecenie:

Najważniejsze są dla nas 2 wiesze: Supports Wake-on, określający jakie tryby WOL są wspierane, wiersz Wake-on, który z trybów jest aktywny. Poszczególne litery oznaczają:

  • p – Wake on phy activity
  • u – Wake on unicast messages
  • m – Wake on multicast messages
  • b – Wake on broadcast messages
  • a – Wake on ARP
  • g – Wake on MagicPacket(tm)
  • s – Enable SecureOn(tm) password for MagicPacket(tm)
  • d – Disable (wake on nothing). This option clears all previous options

Tryb g oznacza poszukiwaną przez nas możliwość budzenia po odebraniu magicznego pakietu. Jeśli ten tryb nie jest domyślnie aktywowany (a pewnie nie jest, jak w powyższym przykładzie) musimy sami o to zadbać wykonując polecenie:

Niestety po restarcie systemu, wartość ta zmieni się do domyślnej. W poprzedniej wersji tego wpisu przedstawiłem kilka metod jak ustawić Wake on MagicPacket(tm) na stałe. Metody te różniły się w zależności od dystrybucji lub nawet od wersji dystrybucji (działająca na starszej wersji niekoniecznie była poprawna na nowszej. Na Wiki XBMC znalazłem w końcu metodę uniwersalną, działającą na wszystkich systemach Debianopodobnych. Pozwoliłem sobie umieścić gotowy skrypt wakeonlan.conf do ściągnięcia na mojej stronie.

Download wakeonlan.conf

Download wakeonlan.conf

Instalację tego skryptu z poziomu konsoli / terminala przeprowadzamy następująco:

Jedynie w przypadku Linux Mint Debian Edition (LMDE) należy w powyższym skrypcie zmienić nazwę interfejsu sieciowego z domyślnego eth0 na eth1. Ta dystrybucja ma tą przypadłość, że jedyna obecna w komputerze karta sieciowa oznaczana jest właśnie nazwą eth1. Ewentualnie można przywrócić standardową nazwę eth0, ale o tym w innym wpisie.

Dodatkowo, jeżeli chcemy mieć możliwość wybudzania komputera ze stanu wyłączenia musimy jeszcze wykonać jedną zmianę:

Testujemy Wake on LAN

Tak przygotowany system jest już gotowy do bycia budzonym w obrębie sieci LAN. Instalujemy jakiś program do generowania magicznych pakietów, w przypadku Linuksa mogą to być:

lub

lub graficzny (GTK+)

Następnie ustalamy adres rozszerzeniowy naszej sieci lokalnej (Bcast) oraz adres MAC budzonego komputera (HWaddr):

Jeśli budzony komputer pracuje pod kontrolą Windows aby ustalić adres rozgłoszeniowy naszej sieci lokalnej oraz adres MAC budzonego komputera wydajemy polecenie ipconfig /all. Polecenie to jednak – w przeciwieństwie do linuksowego ifconfig – nie podaje adresu rozgłoszeniowego lecz maskę podsieci. Jak wyliczyć na podstawie adresu IP oraz maski podsieci adres rozgłoszeniowy przeczytasz tu.

Teraz już możemy obudzić komputer wydając komendę:

lub

Komenda etherwake ma tą przewagę nad wakeonlan, że zamiast adresu rozgłoszeniowego możemy użyć przełącznika -b, ale z drugiej strony kompletnie bez sensu jest to, że etherwake musimy uruchomić jako root 🙁

W końcu możemy użyć graficznego narzędzia gWakeOnLan:

gWakeOnLan

gWakeOnLan

W przypadku Windowsa też jest wiele graficznych aplikacji, ja polecam bardzo rozbudowane narzędzie jakim jest WakeMeOnLan:

WakeMeOnLan

WakeMeOnLan

Jednak myślę, że najwygodniej do budzenia swoich komputerów użyć telefonu z odpowiednią aplikacją. Telefon zwykle mamy przy sobie, więc odpada nam konieczność zapamiętania długiego ciągu cyfr. W sklepie Google jest wiele aplikacji Wake on LAN.

Wake On Lan w Google Play

Wake On Lan w Google Play


A oto pierwsza z nich w działaniu:
Wake On Lan

Wake On Lan


Jest prosta i funkcjonalna, a co najważniejsze bardzo dobrze realizuje to do czego została stworzona.

Jeśli komputer mimo wszystko Ci się nie obudził, a zastosowałeś się do powyższej instrukcji koniecznie zostaw komentarz. Natomiast jeśli się obudził w LAN-ie, spróbujmy obudzić go z WAN-u 🙂

Wake on LAN przez Internet

Choć Wake on LAN jak sama nazwa wskazuje pozwala na budzenie komputerów w sieci lokalnej to jednak można wykorzystać tą funkcjonalność do budzenia komputerów przez Internet (ang. Wake on LAN over the Internet). Podstawowy problem przy włączeniu komputera z Internetu wynika z faktu, że magiczny pakiet trzeba wysłać na jakiś konkretny adres IP, ale skoro nasz komputer jest wyłączony ów adres IP nie istnieje. Na szczęście są na to sposoby. Jednym z tym sposobów jest wykorzystanie domowego routera. Dzięki niemu zewnętrzny adres IP będzie stale istniał. Poniżej przedstawię dokładną instrukcję konfiguracji domowego routera, do budzenia komputerów przez sieć.

Jeśli jednak nie dysponujesz routerem odsyłam Cię do innego mojego artykułu – Jak zdalnie włączyć komputer – Wake On Lan via PHP, jeśli możesz postawić swoją stronę na innym komputerze w sieci LAN (np. osiedlówce) ten sposób jest dla Ciebie.

Konfiguracja routera

W dzisiejszych czasach router jest już bardzo popularnym urządzeniem w polskich domach. Jedyne wymaganie wstępne dla tej metody to zewnętrzne IP. Dzięki usługom typu No-IP nie musi być ono nawet stałe. No i oczywiście router musi być stale włączony, aby nasze IP było widoczne w Internecie.

Jeśli chodzi o samą konfigurację, to teoretycznie wydawałoby się, że wystarczy w routerze ustawić przekierowanie portu 7 i/lub 9 (tak naprawdę to może być dowolny port, ale zwyczajowo przyjęło się, że do wysyłania magicznych pakietów używa się portów 7 i 9) na adres rozgłoszeniowy naszej sieci domowej (zwykle 192.168.1.255) i po sprawie. Niestety firmowe oprogramowanie mojego routera na to nie pozwala: Error code: 26106. The IP address is not in the same subnet with LAN IP address. Na szczęście udało mi się obejść to ograniczenie. Konfigurację routera przeprowadzimy w 3 krokach.

Wszystkie komputery podpięte do naszego routera kablem, które mają być budzone przez Internet muszą mieć stałe adresy IP. W tym celu przechodzimy do sekcji DHCP -> Address Reservation (nazwy poszczególnych pozycji na stronie konfiguracji routera podaję zgodnie z moim TP-Linkiem) i tam parujemy adresy MAC z adresami IP naszej sieci lokalnej. W moim przypadku to będą 2 komputery stacjonarne, co przedstawia poniższy obrazek:

DHCP - Address Reservation

DHCP – Address Reservation

Skoro już nasze komputery mają stałe adresy IP, teraz możemy przekierować na nie porty przez które będziemy wysyłać magiczne pakiety. Jak już wspomniałem w moim przypadku są to 2 komputery, zatem port 7 został przekierowany na jeden, a port 9 na drugi:

Forwarding - Virtual Servers

Forwarding – Virtual Servers

Teraz już Wake on LAN przez Internet powinno działać, ale… tylko przez jakieś 10 minut od wyłączenia komputera. Aby temu zapobiec musimy wpisać nasze komputery na stałe do tablicy ARP routera:

IP & MAC Binding - Binding Settings

IP & MAC Binding – Binding Settings

Pora przetestować budzenie komputera z sieci, w tym celu możemy skorzystać z omówionych powyżej aplikacji z tym, że w przypadku budzenia komputera z Internetu podajemy – zamiast adresu rozgłoszeniowego sieci lokalnej – zewnętrzny adres IP naszego routera. Możemy również skorzystać z jednej z wielu stron, które umożliwiają wysyłanie magicznego pakietu z Internetu, np. Online Wake-On-LAN.

Zdalny dostęp do komputera

Komputer obudzony, teraz dowiedzmy się jak się do niego zdalnie dostać. Polecam mój artykuł Zdalny dostęp do komputera omawiający konfigurację usług Secure Shell (SSH) na Linuksie oraz Pulpitu zdalnego (Remote Desktop Protocol – RDP) na Windowsie.

8 Comments

  1. Super poradnik! 🙂 niestety nie każdy router potrafi przekierowac magiczny pakiet :/

  2. Nie działa po odłączeniu od sieci, dlaczego?

  3. No właśnie testuje to na TL-ER6120 i niestety nie przepuszcza pakietu, a dziwne, bo to dobry router jest:)

  4. ten skrypt do włączania ethtool wol -g u mnie na debianie nie działa :/ ale to zmotywowało mnie do nauki shella żeby znaleźć odpowiedź czemu tak się dzieje 😀 a tymczasem zmieniam ręcznie z d na g

    • A to bardzo możliwe, bo na Ubuntu od której tam wersji też przestał działać, ale na wiki XBMC jest nowa, działająca wersja.

  5. to może zaktualizuj ten poradnik 🙂

  6. Jedna ze stron umożliwiająca wysłanie magicznego pakietu:
    wake-on-lan.andromarket.pl

Leave a Reply

Your email address will not be published. Required fields are marked *