Pobudka na odległość, czyli Wake On LAN w praktyce
Nie tak dawno opisywałem na łamach applesauce swoje boje z klimatyzatorem. Jedną z kwestii, która mnie pozytywnie zaskoczyła, było to, że dzięki dedykowanej aplikacji oraz posiadaniu konta w serwisie producenta, mogę zdalnie urządzenie wyłączać – a co ważniejsze – również je włączać. Postanowiłem sprawdzić, jak wygląda sprawa uruchamiania, bądź wybudzania komputerów, na odległość. I temu właśnie tematowi poświęcam niniejszy wpis.
Na samym początku zdradzę, że finalne efekty są dość zdywersyfikowane i zależą od wielu czynników, które nie omieszkam się opisać. Temat potraktowałem raczej ambicjonalnie, ponieważ jak dotąd udawało mi się funkcjonować bez takich udogodnień, ale jak wiadomo, apetyt rośnie w miarę konsumpcji, a z oczekiwaniami dotyczącymi wygody, jest identycznie :)
Większość z Was, drodzy czytelnicy jeśli nie miała do czynienia, to słyszała pojęcie: WOL – Wake On LAN, czyli wybudzanie po sieci lokalnej. Oczywiście określenie to, używane jest obecnie także do opisania innych metod, ale po kolei. Załóżmy, że mamy komputer i chcemy go zdalnie obudzić, w takiej sytuacji pojawiają się następujące problemy do rozwiązania:
- platforma: Mac / PC
- sposób podłączenia do sieci: Ethernet / WiFi
- dostęp do sieci, lokalnie lub z Internetu: LAN / WAN
- stan komputera: uśpiony / wyłączony
Z powyższymi wiążą się kolejne komplikacje. Spędziłem kilka długich dni na testach i poszukiwaniach, a sprawę utrudniały dość często sprzeczne informacje, dostępne u wielu źródeł.
Całą tajemnicę budzenia na odległość, można uprościć do dwóch, koniecznych warunków:
- z urządzenia nadawczego (komputera/smartfona/tabletu/itp.) wysyłamy specjalnie spreparowane dane, zwane Magic Packet,
- odbiorca pakietu musi mieć aktywny interfejs sieciowy, bym móc ten magiczny pakiet przyjąć.
Rzecz jasna, „od kuchni” jest to znacznie bardziej skomplikowanie…
STAN KOMPUTERA
Niezależnie od tego, czy komputer jest uśpiony czy wyłączony, by zagwarantować odbiór magicznego pakietu, karta sieciowa komputera MUSI być zasilana. Wyłączony interfejs oznacza komputer odłączony od sieci.
Sytuacja I – Komputer uśpiony
Sprawdzamy odpowiednie preferencje systemowe. Dla OS X weryfikujemy, czy „zaptaszkowana” jest opcja Budź przy dostępie przez sieć, którą znajdziemy w kategorii Oszczędzanie energii.

Pod Windowsem natomiast, musimy sprawdzić właściwości karty sieciowej, w dwóch miejscach:
Zarządzanie energią (tu warto zaznaczyć wszystkie opcje, lub ew. pominąć pierwszą, związaną z oszczędzaniem energii)

Zaawansowane (tutaj warto dla każdej właściwości związanej z budzeniem, przełączyć wartość na Włączone)

Może się okazać, że mamy pecha i akurat nasz sprzęt nie posiada interfejsów sieciowych wspierających Wake On LAN… Kolejna sprawa to notebooki i laptopy – może się okazać, że aby wybudzić uśpiony taki komputer, musi być on podłączony do prądu, inaczej mówiąc zasilany z sieci energetycznej, a nie oczekujący na zasilaniu bateryjnym. Z drugiej strony, komputer przenośny częściej mamy pod ręką, zatem zapewne rzadziej zachodzi potrzeba zdalnego wybudzenia.
Sytuacja II – Komputer wyłączony
Tutaj niestety muszę zmartwić wszystkich użytkowników jabłuszek – na chwilę obecną nie ma możliwości zdalnego zastartowania wyłączonego Maczka :/ Trudno powiedzieć, co odpowiada za taki stan rzeczy, czy „Think Different”, czy wyjście z założenia, że macuserzy nie wyłączają swoich komputerów, tylko je usypiają? Nawet jeśli OS X jest stabilny jak skała, to jednak wyjeżdżając na dwutygodniowe wakacje, zostawiać go uśpionego (zwłaszcza, gdy brak UPSa) nie będziemy. A los bywa tak perfidny i dowcipny, że akurat w tym właśnie czasie, możemy potrzebować dostępu do istotnych plików…
Tak czy inaczej, jedyne wyjście na to by Mac dał się obudzić (i dotyczy to zarówno budzenia w sieci lokalnej jak i przez Internet), to przełączyć w tryb sleep. W tym stanie podtrzymywana jest pamięć, karty sieciowe i inne niezbędne komponenty. Nie wiem, z jakim poborem mocy należy się w takiej sytuacji liczyć, będzie to zdecydowanie więcej niż gdyby komputer był wyłączony (no, nie całkowicie). Z drugiej strony możemy śmiało założyć, że z uwagi na przyjazność środowisku, produkty Apple, nie są aż tak łakomymi pożeraczami energii.
Z pecetem jest tu nieco lepiej, ale za pełen sukces odpowiada „szczęście egzemplarza”. To od możliwości płyty głównej oraz dostępnych ustawień w BIOSie/EFI zależy czy nasz komputer włączymy zdalnie czy nie. Pecet w moim domu, bazuje na starej już płycie głównej Asus P8P67LE, ze zintegrowanym Gigabit Ethernetem firmy Realtek (PCIe). W BIOSie, w trybie zaawansowanym, w menu Advanced i kategorii zwanej APM załączyłem „Power On By PCIE”. Tak po prawdzie, z lenistwa, to załączyłem prawie wszystkie dostępne tam opcje Power On :)
Bardzo często przy złączu RJ-45, na tylnym panelu, znajduje się dioda sygnalizująca pracę karty sieciowej, jeśli się świeci przy wyłączonym komputerze, to oznacza, że ten interfejs jest podtrzymywany, a Magic Pocket powinien uruchomić urządzenie.
PODŁĄCZENIE DO SIECI
Według praktycznie wszystkich źródeł, komputer, który chcemy wybudzić zdalnie, powinien być podłączony do sieci po kablu. Informacje takie, znajdziemy również w appkach dla iPhone, które potrafią wysłać magiczny pakiet (opiszę je nieco dalej). Śmiem twierdzić, że nie jest to stuprocentowa prawda, i zależy to od konkretnego modelu komputera, płyty głównej, bezprzewodowej karty sieciowej, oraz systemowego wparcia. Mój stacjonarny pecet nie posiada karty WiFi, ale sprawdziłem możliwość wybudzenia bezprzewodowego w służbowym laptopie (Asus K52JC), niestety próby zakończyły się całkowitym niepowodzeniem.
Okazuje się, że – dla odmiany – z komputerami Apple jest tu lepiej. Firma, jak ma w zwyczaju, wdrożyła własną implementację WOL zwaną WOD – Wake On Demand. Nie będę tu przepisywać specyfikacji, streszczę tylko wyjaśniając, że funkcja ta działa oczywiście tylko z uśpionymi komputerami, oraz wykorzystuje technologię Bonjour a dokładnie usługę Bonjour Sleep Proxy, oraz działa również z kartami bezprzewodowymi AirPort! Czy nasz komputer posiadający taką kartę WiFi obsługuje WOD, należy sprawdzić w aplikacji Informacje o systemie (dawniej Profil systemu).

O dziwo mój stary iMac wspiera Wake On Demand i przewodowo i bezprzewodowo.
BUDZENIE W SIECI LOKALNEJ
To przysłowiowa bułka z masłem, o ile nasze komputery spełniają wyżej opisane warunki. Potrzebujemy jedynie „prowodyra”, czyli urządzenia które wyśle Magic Packet. Ja oczywiście od samego początku myślałem o iPhone, urządzeniu, które mam praktycznie 99% czasu przy sobie, jako inicjatorze pobudki pozostałych gratów. W tym celu przeprowadziłem szybkie poszukiwania odpowiedniej aplikacji. App Store „wypluł” pokaźną listę, którą zgrubnie odfiltrowałem, zostawiając na polu bitwy tylko darmowe appki. Poniżej przedstawię dwie, moim zdaniem najlepsze.
NetAwake – program autorstwa Power of Two Software to, szybkie proste i estetyczne i estetyczne rozwiązanie WOL. Przewagą NetAwake nad innymi programami jest to, że wykorzystuje Bonjour, do wyszukiwania możliwych do wybudzenia maszyn w sieci.

Inaczej mówiąc, jesteśmy zwolnieni z odnajdywania i wpisywania fizycznych adresów interfejsów, tzw. adresów MAC, które to stanowią kluczową informację determinującą odbiorcę magicznego pakietu.

W przypadku innych platform trzeba ręcznie dodać wpis zawierający nazwę i MAC adres. Myślałem, że instalacja tego, rozwiąże sprawę, jednak NetAwake nie chce, z automatu, mojego peceta zobaczyć…


Chyba jedyną wadą NetAwake jest fakt, że nie ma możliwości podania adresu IP, co przy budzeniu z sieci zewnętrznej (WAN) jest elementem niezbędnym.

Ograniczenia tego, nie ma druga z polecanych przeze mnie appek.
Mocha WOL – to produkt MochaSoft znanego z wielu innych programów wspierających zabawy w sieci.

Nie jest może idealny, ale posiada wystarczające możliwości konfiguracyjne i jest również darmowy.

Pozwala również na zmianę domyślnego (9) portu usługi!

Gdy mamy już ściągniętą i zainstalowaną taką aplikację na iPhone, dodaliśmy komputery, są uśpione (lub wyłączone, w przypadku PC wspierającego Power On…), możemy śmiało rozpocząć pobudkę na odległość!
Uśpionego (nie wyłączonego!) peceta możemy też obudzić opisywaną wcześniej tu aplikacją PC Monitor lub rewelacyjnym narzędziem do zdalnej pracy na komputerach – LogMeIn lub LMI Ignition.
BUDZENIE Z INTERNETU
To zdecydowanie najtrudniejsza w realizacji sprawa, właściwie to możliwa do osiągnięcia w bardzo specyficznych warunkach.
Na pierwszy rzut oka, wygląda na to, że jedynym problemem jest dostarczyć pakiet z sieci rozległej WAN do lokalnej LAN. Ale to zaledwie początek góry lodowej…
Po pierwsze musimy uświadomić sobie, że nasza sieć lokalna, jest widoczna w Internecie pod publicznym adresem IP, przypisywanym naszemu modemowi, przez dostawcę usługi (ISP). Problem w tym, że większość popularnych usług (Neostrada, Net24, itp.) przypisuje ten adres dynamicznie, czyli zmienia się on co jakiś czas, a zmiana ta może być inicjowana przez operatora, bądź wynikać np. z restartu modemu (po zmianie ustawień lub przerwie w zasilaniu). Gdy adres się zmieni, to go nie znamy, więc trudno z zewnątrz dostać się do swojej sieci.
Najlepszym rozwiązaniem jest posiadanie stałego publicznego (zewnętrznego) adresu IP. Niektórzy operatorzy (np. w sieciach kablowych) oferują taką możliwość za dodatkową opłatą, u innych wiąże się to ze zmianą „taryfy”, z indywidualnej na firmową.
Alternatywnym rozwiązaniem są serwisy DDNS, jak no-ip.com czy dyn.com które pozwalają na rejestrację domeny powiązanej ze zmiennym publicznym adresem naszej sieci. Niestety, aby móc aktualizować to przypisanie, musimy:
- „poświęcić” jeden z komputerów w naszej sieci lokalnej, zainstalować na nim oprogramowanie klienckie, które po każdej zmianie adresu IP wyśle notyfikacje to naszego konta w serwisie DDNS, lub
- posiadać router wspierający usługę Dynamic Domain Name System, a urządzenie włączone 24 godziny na dobę, samo będzie wysyłać aktualizacje do serwisu.
Niestety, Time Capsule nie wspiera DDNS w taki sposób, by możliwe było skorzystanie w wyżej wymienionych serwisów.
Próbowałem zgłębić temat iCloud i usługi Zdalnie na moim Macu (Back To My Mac), bo przecież tą drogą aktualizacje zmian adresu IP również się dokonują. Jednak, jak się okazało, Apple korzysta tu z protokołu i adresacji IPv6, co sprawę komplikuje na tyle, że się w końcu poddałem.
Gdy się uporamy ze zmiennym publicznym adresem IP, będziemy musieli się zmierzyć z kolejnym problemem – przekierowanie portu, na którym działa usługa WOL (domyślnie 9, ale często też wykorzystywany jest port o numerze 7). Znów, wygląda to trywialnie i właściwie w przypadku znakomitej większości routerów, to prosta sprawa. Sęk w tym, że przekierowanie powinniśmy ustawić na tzw. adres rozgłoszeniowy (ang. broadcast address) naszej sieci lokalnej! Dlaczego? Ano dlatego, że interfejsy sieciowe, nawet jeśli są podtrzymywane „przy życiu”, to gdy komputery są uśpione bądź wyłączone, nie mają przypisanych prywatnych adresów IP. Dlatego magiczny pakiet wysyłany musi być do wszystkich potencjalnych odbiorców, czyli po całej puli adresowej sieci lokalnej. Lecz tylko odbiorca, posiadający właściwy adres MAC, przesyłkę odbierze i zinterpretuje.
Tu pojawia się kolejna wada Time Capsule – nie pozwala na przekierowanie portu na adres rozgłoszeniowy (np. 192.168.1.255).
Próbowałem partyzantki, tj. ręcznej edycji pliku konfiguracyjnego TC, bez skutku. Utworzyłem podsieć, czyli ograniczyłem o połowę pulę DHCP, zmieniłem maskę podsieci na 255.255.255.128, tak by broadcast był pod adresem 192.168.1.127 – to również nie zadziałało.
Przeprowadziłem też zabawę z przypisywaniem adresów statycznych komputerom, i utworzyłem przekierowania portów dla tych konkretnych IP.
I… nawet to poskutkowało, ale tylko przez kilka minut po uśpieniu/wyłączeniu komputerów. Dokładnie trwało to tyle czasu, ile funkcjonowały wpisy w tablicy ARP routera. Wpisy tworzone są dynamicznie i przechowywane w pamięci podręcznej, oraz usuwane/odświeżane po upłynięciu tzw. czasu życia odwzorowania.
No to mamy trzecią już wadę Time Capsule – brak możliwości utworzenia statycznych odwzorowań w tablicy ARP.
No to by było chyba na tyle :) Jeśli macie jakieś pytania, lub własne doświadczenia, podzielcie się nimi w komentarzach. Mam nadzieję, że to mini-kompendium, zebrane w jednym artykule, mimo że dotyczy konfiguracji mojego „parku maszynowego”, pomoże zainteresowanym, w rozwiązaniu podobnych problemów.
Ja, chcąc nie chcąc, muszę zakceptować niedoskonałości TC i zrezygnować z budzenia komputerów przez Internet. Bardziej mnie jednak irytuje fakt, że wciąż nie wiem, jak rozwiązali ten problem magicy z Samsunga…
Zapraszam Cię do innych ciekawych wpisów dotyczących sieci, które ukazały się na applesaue.pl:
➣ Wake On Lan w praktyce – suplement
➣ Bonjour Sleep Proxy – szybkie wybudzanie urządzeń Apple
➣ Wsparcie DDNS oraz zdalny dostęp do dysku Time Capsule

Hej,
a ja mam pytanie. Czy są programy na smartphona, które potrafią również uśpić komputer via WAN?
Oczywiście, że są takie :) Sam korzystam od daaawna z PC Monitora, który opisywałem na applesauce.pl dwukrotnie:
https://www.applesauce.pl/2011/07/22/maly-brat-patrzy/
https://www.applesauce.pl/2012/08/12/zdalne-usypianie-maka-wersja-jeszcze-darmowa/
OK, dzieki. Ale ja potrzebuje aplikację taką jak mWOL tylko żeby potrafiła włączać i wyłączać zdalnie mojego NAS Synology. Pewnie znasz jakąś apke. mWOL jest dla mnie prawie idealny tylko, że nie mogę za jego pomocą uśpić kompa a jedynie go obudzić :(
sory, że się tak panosze, ale nie mam dużego doświadczenia w trafianiu z postami w odpowiednie miejsce :)
Nie panoszysz się, więc luźna gumka ;) Komentarze od tego są, by pytania zadawać. Wyjaśnij mi bardziej, czy problemem jest kwestia użycia dwórch różnych appek, tzn. że budziłbyś przez mWOL a usypiał PC Monitorem? Dostęp do danych na serwerze NAS chcesz mieć „on-demand”, po uprzednim wybudzeniu kompa, a po np. pobraniu danych, chciałbyś uśpić komputer? Chodzi o PC czy Mac? W przypadku OS X możesz skorzystać z systemowej funkcji usypiania komputera po określonym czasie bezczynności, który może być ustawiony w zakresie od 1 minuty do 3 godzin. Inaczej mówiąc, mogłoby działać to w ten sposób, że budzisz zdalnie komputer, masz… Dowiedz się więcej »
OK, ciesz się, że nie przeszkadzam :)
mWOL jest ok ładnie budzi mojego NASa. Chciałbym aby jedna apka potrafiła zarówno obudzić jak i uśpić mojego NASa.
Nie ma też problemu abym używał dwóch apek. Jedna do usypiania a druga do budzenia.
Czy PC Monitor potrafi uśpić mojego NASa Synology bez udziału kompa (mam Mac’a)?
Ufam, że wszystko jasno opisałem? Starałem się :)
PC Monitor niestety wymaga instalacji agenta i nie przypominam sobie aby takowy był zintegrowany w software NASa… Ale powinieneś mieć możliwość ustawienia „idle time”, po którym NAS przejdzie w tryb sleep, a przynajmniej jego dyski.
Rzuć okiem na ten opis (dotyczy co prawda automatycznego wyłączenia i załączania NASa, ale powinen pomóc):
http://blogmydigitallife.blogspot.com/2012/08/how-to-automatically-turn-your-synology.html
Nie wiem jaki model urządzenia masz i czy takie samo oprogramowanie występuje…
Mój NAS to Synology 214 play. Smartphone iPhone 5. Potrzebuję jedynie programu do wzbudzenia i uśpienia mojego NASa. mWOL jest super. Szkoda tylko, że nie można za jego pomocą uśpić urządzenia :( Dziękuję Ci za pomoc. Może ktoś z czytelników podsunie ciekawe rozwiązanie? Z drugiej strony dziwi mnie, że Synology nie zrobili tego.
OK, dzieki. Ale ja potrzebuje aplikację taką jak mWOL tylko żeby potrafiła włączać i wyłączać zdalnie mojego NAS Synology. Pewnie znasz jakąś apke. mWOL jest dla mnie prawie idealny tylko, że nie mogę za jego pomocą uśpić kompa a jedynie go obudzić :(
Hej, ja tak na szybko – artykuł sprzed roku więc od razu pytam – masz jakieś nowe sposoby na wzbudzanie PC z internetu? Ostatnie zdanie „zrezygnować z budzenia komputerów przez Internet” – trochę mnie martwi? Dla mnie to kluczowa sprawa. Generalnie mam stałe IP i raczej najnowszy komp… Rozwiązałeś jakoś już ten problem?
Witaj. W moim przypadku kluczowym problemem są ograniczenia Time Capsule. Zdaje się, że od czasu gdy pisałem ten artykuł nie było uaktualnień oprogramowania AirPort, a ja nie zmieniłem routera na inny, więc nie specjalnie było co sprawdzać. W każdym bądź razie dzięki za przypomnienie, poświęcę chwilę i wrócę do tematu. Oczywiście napiszę na blogu, jeśli jakiś pozytywny skutek uda mi się osiągnąć.
Jakiego routera Ty używasz? Może potrafi wysłać Magic Pocket na adres rozgłoszeniowy?
No mam starego D-Link DIR-300 (firmware 1.05) i dzisiaj po całym dniu zabawy z tymi Magic Packiet’ami właśnie dochodzę do wniosku, że chyba nie puszcza tych pakietów z WAN dalej na LAN. Mimo że port-forwarding chyba dobrze mam i także przyjął wpisany 192.168.0.255 ale sniffer na kompie docelowym tego nie odbiera.
Za to jak ślę pakiet tylko w LAN to win7 go dostaje i mam całe dane o nim. Hmmmm.
Jak napisałem powyższy komentarz to od razu widzę, gdzie leży słabość, hehe:) Komp może mam super ale router już Wiekowy! Lepiej go zmienie zamiast się męczyć. A podobno można w tego DIR-300 wgrać DD-WRT no ale ta zabawa to już całkiem inny wątek… Wgrywałeś gdzieś DD-WRTki ?
Routery Asus-a umożliwiają wysłanie MagicPacket bezpośrednio z routera. Wystarczy włączyć możliwość logowania do panelu zarządzania routera od strony Internetu i po zalogowaniu można wysłać MagicPacket do sieci lokalnej. Tylko wystawiając panel konfiguracyjny routera na zewnątrz trzeba zadbać o odpowiednio silne hasło i nie zaniedbywać aktualizacji firmware routera.
Temat stary ale antidotum jest.Otóż Gargoyle na router,jeśli na zewnatrz jest zmienne ip to oczywiście ddns,potem postawić sobie open vpn na routerze i to juz wszystko.Z zewnątrz przez klienta open vpn wchodzimy na router z gargoyle a tam jest opcja wybudzenie przez weakup wszystkich sprzętów w naszej sieci .Może się komuś przyda.