Zdalne uruchamianie komputera w sieci (Wake on Lan / via WAN)


  • Admin

    Cześć, w tym wątku omówimy sobie kompleksowo zdalne uruchamianie komputera poprzez sieć Lan / Wan oraz problamy z tym związane.
    Bardzo często zachodzi potrzba mieć możliwość uruchomienia naszego sprzętu zdalnie np. z dowolnego miejsca na świecie oraz korzystania w pełni z jego zasobów gdziekolwiek byśmy się nie znajdowali - jak się okazuje nie jest to nic czego zrobić by się nie dało.

    W tym wątku opowiemy sobie trochę o tym czym takim jest WOL (Wake on Lan) oraz w jaki sposób możemy go skonfigurować tak abyśmy nawet będąc poza swoją siecią domową mogli zupełnie swobodnie korzystać z całego naszego centrum multimedialnego znajdującego się w naszym domowym zaciszu.

    Wake on Lan

    Wake on Lan - co to takiego?

    Jak sama nazwa mówi, jest to "budzenie w sieci", czyli nic innego jak wysyłanie tzw. Magic Packets (magicznych pakietów) które uruchomią / wybudzą nasz komputer z stanu standby (w którym pobiera on minimalne wartości prądowe z gniazdka) tak aby mógł on normalnie wystartować / uruchomić się.

    Jak uruchomić WOL?

    Choć mogłoby się wydawać, że jest to stosunkowo łatwe to czasami przysparza o zawrót głowy nawet osoby które są stosunkowo doświadczone jeżeli chodzi o IT. W szczególności jeżeli jesteście posiadaczami jakiegoś starszego urządzenia w których to ile było producentów tyle też było sposobów i pomysłów na to jak tego dokonać.

    Co będziemy potrzebować?

    Zacznijmy od tego, że sporo elementów jest strikte uzależnionytch bezpośrednio od sprzętu którego jesteście posiadaczami, i choć staram się w tym poradniku zawrzeć większość znanych mi funkcji, opcji z którymi można mieć styczność podczas kofiguracji WOL'a to i tak nie są to wszystkie i na pewno znajdą się wyjątki od tych reguł.

    Tak więc przy Wake on Lan należy pamiętać o paru rzeczach, a mianowicie:

    • Posiadany sprzęt (ograniczenia ze względu na hardware)
    • Oprogramowanie i jego konfiguracja

    W przypadku Wake on Lan poprzez Internet dodatkowo:

    • Zapory i ustaweinia sieci

    Do dzieła

    Przygotowanie i konfiguracje urządzeń pokaże zarówno dla systemów spod znaku Windows'a jak i Linux'owych, więc nie powinno być z tym problemów. Natomiast przy sprzęcie skupimy się również na innych producentach, tak aby było to względnie uniwersalnie opisane.

    Sprzęt

    Ok, w tym podpunkcie omówmy sobie co tak naprawdę może potencjalnie uczestniczyć (jakie podzespoły) podczas próby zdalnego uruchamiania. No jak się pewnie domyślacie będą to kolejno:

    • Zasilacz
    • Karta sieciowa
    • Płyta główna

    Wszystkie trzy są bardzo ważne, większość nowych płyt głównych ma jednak wbudowaną kartę sieciową a dzisiejsz zasilacze również nieczego nie ujmują współczesnym zestawom. Jednak dla pewności należałoby sprawdzić czy ta "wbudowana" lub "zewnętrzna" jeżeli posiadacie karta wspiera w ogóle WOL oraz czy płyta też nie jest na tym polu jakoś ograniczana.

    Co w takim razie zrobimy?

    Zasilacz / płyta główna

    Najlepszym co możnaby zrobić to ściągnąć instrukcje, naprawdę - nic nam tak dobrze nie odpowie na zestaw naszych pytań jak instrukcja od płyty głównej. Wystarczy więc, że wpiszemy sobie model naszej płyty (możemy go odczytać bezpośrednio z laminatu będź jakimś programem) i znajdziemy stronę producenta, większość (o ile nie wszyscy) udostepniają takie dokumenty - wystarczy więc poszukać.

    W moim przypadku jest to np. "Gigabyte XA-990-UD3", niemniej ściągając pdf'a i przeszukując go pod kątem danego słowa "Wake on lan" (CTRL+F w Chrome) za dużo nie znajdziemy. Więc w pewnych wypadkach trzeba jednak posiłkować się zewnętrznymi forami, szukając "Gigabyte XA-990-UD3 WOL". Tak więc znajdujemy bliżej nieokreślone opcje które należy aktywować / dezaktywować i lecimy z tematem.

    Jeżeli chodzi o mój konkretny przypadek to należało wyłączyć w BIOS / UEFI w zakładce Power Management funkcje Erp. Jest to taka norma europejska mówiąca o tym, że urządzenia w trybie czuwania nie powinny pobierać więcej jak 0.5W. Choć oszczędzanie energii jest fajne i tak dalej to do korzystania z WOL jest nam z nim lekko niewygodnie. Generalnie możecie się też spotkać z oznaczeniem EuP/ErP, nie ma znaczenia chodzi o to samo i najczęściej należy to po prostu wyłączyć.

    Erp Gigabyte

    Często tez w ustawieniach naszej płyty znajdziemy inne przełączniki do wł/wył WOL, jednak akurat w przypadku Gigabyte wyłączając tą normę Erp niejako z automatu uaktywnia to Wake on lan. Inne bajery typu Power On By Keyboard również możemy wyłączyć bo nam się nie przydadzą. Jednak aby poradnik ten był kompletny pozwoliłem sobie zamieścić jeszcze parę przykładów, jak to może wygląda u innych producentów bios'ow:

    • AMI (Resume On PCIE Wake, WOL in S4)
    • PHOENIX (WOL from Soft-off, Power Up On PCI/PCIE Devices)
    • AWARD (Wake up on LAN, Wake-Up by PCI card, Resume By PCI PME/LAN)

    Po konkrety tak czy inaczej odsyłam do manuala waszej płyty, żeby dokładnie wiedzieć które z tych opcji pozostawić włączone a które nie.
    Bardzo rzadko ale może się tak także zdarzyc, że aby włączyć tą czy inną opcję będzie potrzeba przełożenie zworki, ale to się tyczy głównie tych przedpotopowych konstrukcji.

    Gdy wiemy co i jak wystarczy, że zrestartujemy naszego PC'ta oraz przy ponownym starcie w zależności od producenta płyty przejdziemy do BIOS'u / UEFI - np. w płytach Gigabyte możemy to zrobić pod klawiszem Del (delete).
    Przechodzimy do sekcji "Power Management" lub czegoś podobnego i tam odszukujemy opcje które należy włączyć / wyłączyć. Na koniec wystarczy zapisać zmiany (F10) i/lub przechodząc do Save & Exit i wybierając Save & Exit Setup.

    Karta sieciowa

    Jeżeli chodzi o kartę to należy sprawdzić czy Wol jest wspierany oraz czy, w zależności od systemu / oprogramowania jest on włączony.
    Ten podpunkt sprawdzimy sobie przy okazji konfiguracji oprogramowania już za moment.

    Konfiguracja oprogramowania

    Dobra, jak zatem sprawdzić czy nasza karta wspiera WOL? Bardzo prosto, wysłać do niej taki pakiet!
    Zanim jednak to zrobimy musimy sobie taką opcje odblokować w samym systemie. Tak wiec nie pozostaje nam nic więcej do roboty jak zmienić parę ustawień.

    Windows

    Po pierwsze musimy sprawdzić kilka rzeczy, dlatego przechodzimy do:

    Ustawienia karty

    Menadżer urządzeń > Karty sieciowe > Realtek PCIe GBE Family Controller > Właściwości i tam odnajdujemy zakładkę "Zaawansowane". Ponadto zmieniamy "Wake on Magic Packet" i "Wake on pattern match" na Enable, oraz "WOL & Shutdown Link Speed" ustawiamy na "10 Mbps First".

    Wlasciwosci karty

    Następnie w zakładce "Zarządzanie energią" zaznaczamy "Zezwalaj temu urządzeniu na wznawianie pracy komputera" oraz "Zezwalaj tylko pakietowi Magic na wznawianie pracy komputera" upewniając się przy tym, że pierwsza opcja od samej góry a więc "Zazwalaj komputerowi na wyłączenie tego urządzenia w celu oszczędzania komputera" jest wyłączona. Koniec końców karta z której chcemy korzystać będzie teraz popychała nasz sprzęt do pracy tak więc nie może być wyłączona.

    Ustawienia enegii

    Oczywiście powyższy przykład dotyczy zintegrowanej karty sieciowej (w tym przypadku Realtek) jeżeli jednak w komunikacji z siecią korzystasz z innej karty przewodowej / bezprzewodowej zastosuj te wskazówki właśnie do niej.
    Np.:

    Intel WOL

    Przykład karty Intela w którym należy zaznaczyć "Wake on Magic Packet" oraz "Wake on Magic Packet from power off state".


    Inne sposoby:

    Czasami jednak bywa, że nawet wyczerpując standardowy zestaw możliwości dalej coś nie działa, idzie nie po naszej myśli. Dlatego podaje również inne metody z którymi sam się spotkałem szukając dawno temu rozwiązania. Mam nadzieje, że któreś z nich Wam pomoże podczas waszych potyczek z komputerem w tej nierównej walce.

    Ustawienia zasilania

    Pierwszą z takich metod z jaką możemy mieć styczność są ustawienia zasilania naszego komputera (tyczy sie to w szczególnościu urządzeń przenośnych), tak więc przechodzimy do
    Panel sterowania > Opcje zasilania > Zmień ustawienia planu (obecnie aktywnego). Wybieramy "Zmień zaawansowane ustawienia zasilania" i w nowym oknie zmieniamy "Ustawienia karty sieci bezprzewodowej" na "Maksymalna wydajaność":

    Zaawansowane ustawienia zasilania

    Dalej oczywiście Zastosuj i Ok.
    Ponadto cofamy się do głównego menu Opcji zasilania i z lewej wybieramy "Wybierz działanie przycisków zasilania" a następnie "Zmień ustawienia, które są obecnie niedostępne" i odznaczamy "Włącz szybkie uruchamianie (zalecane)":

    Ustawienia systemowe zasilania

    Ustawienia zapory

    Kolejnym problemem jak się okazuje może być ustawienie zapory systemu Windows w Panel sterownia > Zapora systemu Windows > Ustawienia zaawansowane a następnie z lewej strony wybieramy "Reguły przychodzące" i dodajemy z prawej strony "Nowa reguła..." potem w kreatorze wybieramy "Port" w następnie "UDP" o porcie "9" (lub 7) zezwalając na wszelkie połączenia od Domeny, Prywatnie oraz Publicznie.

    Ustawienia Zapory

    Dodatkowe programy / funkcje

    Inna ciekawą opcją którą znalazłem pewnego razu było dodanie tzw. "Simple TCP/IP services". Choć niezbyt wiem jak miałoby to pomóc skoro WOL działa w oparciu o protokół UDP a nie TCP.
    Możemy to jednak zrobić poprzez (Win + R) i/lub wpisujać "optionalfeatures.exe" lub wyszukjąc "Włącz lub wyłacz funkcje systemu Windows" po czy odnajdując podaną opcje i zaznaczając.

    Simple TCP/IP


    Jeżeli wszystko już zrobiliśmy pozostaje nam jedynie sprawdzić, np. przy pomocy cmd / poweshell'a nasze IP / adres MAC i spróbować wysłać jakiet z innego komputera.
    Możemy to wykonać (WIN + R i cmd) i/lub wyszukjąc wiersz poleceń i wpisując w niego ipconfig /all. Efekt:

    Ipconfig

    Linux

    Systemy unix'owe i podobne mają to do siebie, że wszystko w nich jest maksymalnie uproszczone pod warunkiem, że wiemy co robimy i znamy odpowiednie komendy. Zaraz zobaczycie jak w ciągu paru chwil z terminala zrobimy praktycznie to samo co w Windows'ie byśmy musieli przeklikiwać, przejdźmy więc do niego (CTRL + ALT + T ~ Gnome) i/lub wyszukując terminal.

    sudo ifconfig - sprawdzamy interface sieciowe (karty sieciowe) wraz z ich obecną adresacją.

    Otrzymamy w efekcie coś takiego:

    [details=Ifconfig]

    enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.50  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::7bdc:c42g:3782:4e45  prefixlen 64  scopeid 0x20<link>
            ether 08:00:27:6C:A4:86  txqueuelen 1000  (Ethernet)
            RX packets 228497  bytes 314017198 (299.4 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 161745  bytes 14399209 (13.7 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1  (Local Loopback)
            RX packets 266  bytes 20364 (19.8 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 266  bytes 20364 (19.8 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    

    [/details]

    Nas tak by-the-way interesuje jedynie górna cześć czyli opis dla enp3s0, czasami możecie też spotkać się z eth0.
    Generalnie chodzi o samą nazwe tego interfacu, jezeli już ją mamy lecimy dalej z kolejnym poleceniem:

    sudo ethtool enp3s0 - dzięki temu poleceniu odpowiemy sobie na wszystkie w zasadzie pytania związane z WOL.

    Wydajemy je sobie i otrzymujemy taki efekt:

    [details=Ethtool]

    Settings for enp3s0:
    	Supported ports: [ TP MII ]
    	Supported link modes:   10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	                        1000baseT/Half 1000baseT/Full
    	Supported pause frame use: No
    	Supports auto-negotiation: Yes
    	Advertised link modes:  10baseT/Half 10baseT/Full
    	                        100baseT/Half 100baseT/Full
    	                        1000baseT/Half 1000baseT/Full
    	Advertised pause frame use: Symmetric Receive-only
    	Advertised auto-negotiation: Yes
    	Link partner advertised link modes:  10baseT/Half 10baseT/Full
    	                                     100baseT/Half 100baseT/Full
    	Link partner advertised pause frame use: Symmetric
    	Link partner advertised auto-negotiation: Yes
    	Speed: 100Mb/s
    	Duplex: Full
    	Port: MII
    	PHYAD: 0
    	Transceiver: internal
    	Auto-negotiation: on
    	Supports Wake-on: pumbg
    	Wake-on: g
    	Current message level: 0x00000033 (51)
    			       drv probe ifdown ifup
    	Link detected: yes
    

    [/details]

    Teraz teraz wystarczy umieć odczytać to co nas interesuje, oczywiście wszystko ładnie jest opisane w man ethtool.
    Niemniej całość przedstawia się to następująco:

    [details=Man]

    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.
    

    [/details]

    Spoglądamy więc na sekcje "Supports Wake-on" i możemy z niej odczytać które z opcji są wpierane, natomiast "Wake-on" odpowie nam na pytanie które są obecnie uruchomione.
    W powyższym przypadku tak się składa, że wszystko czego potrzebujemy jest już uruchomione.

    Gdybyśmy jednak chcieli aktywować "budzenie magicznym pakietem" czyli opcje "g" wystarczy wydać jeszcze jedno polecenie:
    ethtool -s enp3s0 wol g

    No i to właściwie wszystko jeżeli chodzi o konfiguracje, dodatkowo gdybyście chcieli poznać swój adres MAC/IP waszej karty sieciowej - to był on widoczny przy okazji sprawdzania dostępnych interfaców, wpis "ether" czyli "08:00:27:6C:A4:86". Często można też spotkać z "HWaddr", natomiast jeżeli chodzi o adres IP to w naszym przypadku jest to "inet" czyli "192.168.1.50 (adres wewnętrzny)".

    Czasami (w szczególnych przypadkach) zachodzi potrzeba ręcznego doinstalowania powyższych poleceń wydając inne czyli sudo apt-get install ethtool net-tools.

    Zapory i ustawienia sieci

    Jeżeli planujesz uruchamianie swojego komputera również spoza własnej sieci warto zrobić jeszcze przekierowanie portów, wchodząc na stronę router'a i logując się przy pomocy haseł (najpewniej domyślnych choć nie jest to zasadą admin / admin).

    Najpewniej adres waszego router'a to 192.168.1.1 jednak zawsze możecie to sprawdzić uruchamiając konsole oraz wpisując wczesniej poznane polecenie ipconfig / ifconfig a następnie spoglądając na adres bramy domyślnej (gateway).
    Adres ten przepisujemy wprost do paska adresu przeglądarki z której korzystamy. Gdy już uda nam się wejść na stronę odszukujemy zakładki "Port Forrwarding / NAT" i robimy przekierowanie portu 9 po UDP dla naszego komputera.

    Przekierowanie portu

    W zależności od posiadanego routera proces ten może się skrajnie różnic stąd trudno tutaj opsiać wszystkie możliwe przypadki.
    Przy okazji polecam ustawienia niestandardowego portu zewnętrznego, jakiegoś powyżej 1000+.

    Testowanie

    No i na tym etapie wszystko powinno już działać, pozostaje jedynie przetestować czy jesteście w stanie uruchomić Wasz komputer zdalnie z poziomu waszej sieci, np. telefonu z Androidem oraz aplikacją WOL oraz poza waszą siecią.

    Jeżeli macie drugi komputer podłączony do tej samej sieci możecie w przypadku Windows'a pobrać jeden z programów umożliwiających zdalne budzenie lub w Linux'ie pobrać dodatkowy pakiet sudo apt-get install wakeonlan. Potem wystarczy, że wywołując to polecenie podacie adres fizyczny waszej maszyny którą chcecie obudzić wakeonlan 08:00:27:6C:A4:86.

    Zresztą możecie także sprawdzić wasze zewnętrzne IP (poza siecią) i zobaczyć czy WOL zadziała także poza waszym LAN'em, czyli taki "Wake on Lan via Wan".
    Aby to zrobić przechodzimy sobie na stronę np. myip.com. Potem pozostaje jedynie zobaczyć jak całość hula przy pomocy np. telefonu z apką, np. klik. Zaznaczając oczywiście w aplikacji opcje "Send as Broadcast" oraz wklepując nasze zewnętrzne IP oraz adres MAC urządzenia końcowego.

    Jeżeli jesteście zainteresowani uruchomieniem nie tylko Wake on Lan w waszej sieci ale również innych usług lub skonfigurowaniem DDNS odsyłam Was do innych naszech poradników.

    Sądzę, że to tyle co mógłym Wam w tym temat przekazać. Ważne aby się nie poddawać, szukać i próbować - sam przyznaje, że siedziałem nad tym tematem naprawde sporo czasu zanim to wreszcie zachciało łaskawie zadziałać.