top
logo


Számítógép távoli beindítása (Wake On Lan - WOL)

Bizonyára sokan kerültünk már olyan helyzetbe, hogy otthoni, munkahelyi, vagy máshol szunnyadó számítógépünket be kellett volna indítani, de senki nem volt a gép közelében, aki ezt megtehette volna a kérésünkre nekünk. Az alábbi cikkem ennek egy megoldására ad tanácsokat.

 

A megoldás egy általánosan (és informatikai körökben gyakran) használt Wake On LAN (röviden WOL), azaz helyi hálózaton történő ébresztésnek nevezett eljárás.

Ahhoz, hogy a használhassuk, néhány fogalmat meg kell, hogy értsünk! Akik nem annyira jártasak a számítógéphálózati fogalmak terén, azoknak annyi segítséget adok egy közigazgatási hasonlattal élve, hogy az IP-cím a hálózati eszköznek (számítógép, Router...stb.) olyan, mint a lakásnak a postai címe és a tulajdonos neve, a MAC-address a hálózaton kommunikáló eszközök közt pedig olyan, mint a lakás helyrajzi száma. A DNS (doménnév szolgáltatás) pedig talán olyan, mint a lakcím nyilvántartó a Belügyminisztériumban, mely megmondja, hogy milyen helyrajzi szám milyen lakcímhez és tulajdonoshoz (név) tartozik...

Egy lakás címe változhat (pl. politikai okokból), de a helyrajzi szám sokkal stabilabb dolog, ritkán változik.

Ebből már sejthető, hogy a MAC-address (MAC-cím) néhány kivételtől eltekintve a gyárban beállításra kerül, és nem is változtatható meg, kivéve az újabb Router-ekben. De IP-cím (lakcím) és doménnév (háztulajdonos neve) összerendelés akárhányszor módosítható... A MAC-address-ről itt nem szólok többet, csak a tisztább érthetőség miatt említettem meg.

Egy számítógép IP-címe, mely a hálózaton őt azonosítja attól függ, hogy az melyik hálózatban lett bekapcsolva, hogy a hálózati IP-címeket nyilvántartó és automatikusan kiosztó szolgáltatás (ami otthon a Router-ben üzemel és DHCP a neve) milyen egyedi címet oszt ki a gépnek. Szabály, hogy egy helyi hálózatban minden IP-címből csak egy darab lehet, különben nem lennének egyértelműen azonosíthatók a gépek!

Előfordulhat tehát, hogy otthon a laptopunk például a 192.168.0.123 címet, míg a munkahelyi hálózatra dugva a 10.12.2.46 címet kapja. Két fontos dolog van ebben. Az egyik az, hogy az IP-cím (IPV4, tehát a manapság többnyire használatos hálózati mód esetén)  mindig 4 darab 0..255-ig terjedő pontokkal elválasztott számból áll. A másik, hogy a szabványok szerint a 10 és 192 kezdetű címek mindig helyi (lokális) hálózatokat jelentenek. Tehát otthon, illetve a munkahelyen a hálózati címek vélhetően így kezdődnek. Az olyan hálózat, amely nem helyi (pl. egy Internet szolgáltató cég hálózata), amihez a Router-ünk is csatlakozik, ha van előfizetésünk, más kezdetű címet kap (pl. 89.132.30.178 a UPC-nek). A Router tehát többek közt annyit csinál, hogy összeilleszti az alábbi módon a kinti világot a helyi hálózattal, mivel e két világ IP-címzése különböző. Az automatikus IP-cím kiosztást és nyilvántartást a Router-ben helyi hálózati szinten egy DHCP-nek hívott szolgáltatás végzi. Ha ez nincs (pl. letiltották a Router-ben), akkor a gépeknek előre, kézzel be kell állítani az EGYEDI IP-címet! Ha véletlenül mégis két egyforma IP-cím jelenik meg a hálózaton, akkor az másodiknak bekapcsolt gépen az IP-cím ütközést jelző hibaüzenet jelenik meg.

Az Interneten minden Router önálló számítógépként szerepel, így tehát IP-címet kap. Nem lokálisat (192-vel, vagy 10-zel kezdődőt), hanem globálisat. Tehát, ha egy Router-re négy számítógép kapcsolódik a lokális oldalon, azok mind ugyanezen az IP-címen kommunikálnak a kifelé a külvilággal! Ezt nagyon fontos megértenünk és megjegyeznünk!

Amikor egy gép felébresztő üzenetet küld egy az Interneten lévő másik távoli gépnek, akkor az üzenethez tartozó fejlécben (ami automatikusan kezelődik) belekerül a helyi IP-cím, a helyi MAC-address (fizikai azonosító), a távoli gép MAC címe és IP címe, valamint a port sorszáma.

No igen, a port (kapu). Erről még nem beszéltünk. A számítógépünket úgy is felfoghatjuk, mint egy több üggyel is foglalkozó hivatalt, hatóságot. Minden ott lévő, különböző fajta ügyekkel foglalkozó osztály más szobaszámon található (noha a postai címük lehet azonos). Tehát más az építési osztály, más a vállalkozásokkal kapcsolatos, más a bírságokat behajtó... stb irodájának szobaszáma.

A számítógépünkben futnak programok, szolgáltatások és mindegyik más és más port-számmal van azonosítva. Pl. ha weblapokat szolgáltatunk a külvilág számára, akkor 80-as a port a kapu, amin elérhető. Míg ha a Skype üzemel, az meg esetenként a 443-as porton érhető el ugyanazon a gépen. Amikor az Internetről egy üzenet érkezik a helyi hálózat egyik számítógépéhez (mert ugyebár több gép is lehet), a Router az üzenet fejlécében tárolt cél-port alapján dönti el, hogy melyik gép a címzett és a gép pedig a port-szám alapján tudja, hogy az üzenet melyik programnak szól. Amikor a program válaszol, szintén egy portot és címet tesz a fejlécbe, ami alapján a másik gép elérhetővé válik a számára.

A Router-ben (biztonsági okokból) beépítettek egy lehetőséget, amivel a Router át tudja fordítani a külvilág felé használatos portokat a helyi portokká. Például önkényesen dönthetünk úgy is, hogy a helyi hálózaton a szolgáltatott weblapjaink ne a 80-as porton legyenek elérhetők, hanem a 10342-esen. Ezt a Router-ben beállíthatjuk, és akkor az összerendelés alapján a Router mindig tudni fogja, hogy az a csomag, ami a 80 porton jött, a 10342-es porton figyelő programnak küldendő tovább. A portok száma 0..65535-ig terjedhet és az alsó 1024 port kötelező szabvány. pl. a weblap a 80-as...

A hálózati kommunikáció ennél jóval összetettebb, de ennyi már elég ahhoz, hogy megértsük a teendőket.

A WOL (Wake On LAN) a gépeket MAC-address alapján találja meg! Miért? Azért mert gépek IP-címmel csak éber állapotban, amikor már üzemelnek és címet kaptak, akkor rendelkeznek. Alvó gépnek nincs IP-címe! Csak a fizikai cím (MAC-address) alapján szólítható meg. Kérdezhetné valaki, ha a gép alszik, miként tudja értelmezni a neki küldött felébresztő csomagot? Nos a mai gépeknek létezik több kikapcsolt állapota is. Az egyik az, mikor áramtalanítjuk. Ekkor nem ébreszthetők fel. Aztán van, mikor csak leállítjuk (a Start menüből pl. Windows-ban). Ilyenkor a gép leáll, de a hálózati kommunikációt végző pici kis számítógépecske bent a dobozban a hálózati kártyán továbbra is áramot kap és üzemel. Üzemel és árgus szemekkel figyel a 7-es, vagy 9-es porton. Amikor ezen a 9-es (vagy még a 11-es is használatos) porton egy adott, szabványban meghatározott adatsorozat (Magic Pocket, azaz varázscsomag) érkezik, a hálózati kártya rögvest felébreszti a gépet.

Helyi hálózaton is felébreszthetik egymást a gépek. Erre lehet szükség például akkor, ha az ágyban lévő laptopunkkal szeretnénk a másik gépünkön letöltött filmek közül egyet megnézni, de a filmek amelyek a másik gépen tárolódnak és az a másik kollégiumi épületben lévő gép ki van kapcsolva. Ekkor nem kell kimászni az ágyból és átmenni az udvaron át a másik épületbe, hanem csak felébresztjük, várunk pár percet, míg rendesen beindul és kész. A felébresztéshez egy speciális programot, vagy parancsot kell használnunk. Linux-on a Gwakeonlan, míg Windows-on a Wolcmd nevű programocskák ilyenek. Előre beállítjuk rajtuk a felébresztendő gép IP-címét (ha globális, azaz távoli, akkor azt), MAC-address-ét, és a port számot (9) és az alhálózati maszkot (255.255.255.255). Ezek után csak egy gombot kell a programon megnyomni a távoli ébresztéshez. A Wolcmd parancssori módot tud csak, ezért utána kell írni az iménti paramétereket az indításhoz.

Léteznek olyan honlapok is, ahol beírjuk a szükséges adatokat (IP-cím, MAC-address, 9-es port) és megnyomva a gombot a TÁVOLI honlap elküldi az ébresztő parancsot. A kezdeti próbákhoz és beállításokhoz ez a legkényelmesebb megoldás. Ilyenkor nem kell senki segítségét kérnünk...

Honnan tudható meg az ébreszteni kívánt gép MAC-addresse? Az adott gépen, parancssorból kiadott ifconfig, vagy Windows-on ipconfig parancs kiírja. Linuxon ilyenkor például a HWaddr 00:1e:8c:74:4b:46-hoz hasonló szövegrészlet jelenti a MAC-addrest. Ebből a kettőspontokkal elválasztott számsorozatot kell felírnunk magunknak és elvinnünk az ébresztő parancsot kiadó géphez.

Távoli, az Interneten át való ébresztésnél viszont szükség van a Router globális címére is , amelyik mögött az ébresztendő gép is szunnyad. Honnan tudható ez? A megoldáshoz több lehetőségünk is kínálkozik. A legegyszerűbb az, ha a szolgáltatónktól fix IP-címet vásárlunk (de ez havonta pénzbe kerül). Ez költséges és nem is mindig járható út (pl. munkahelyi gép). A másik pedig a DynDNS használata, aminek megértéséhez egy másik cikkem nyújthat segítséget. A harmadik az, hogy reménykedünk, hogy a szolgáltató nem változtatja az IP-címünket egy darabig, illetve a Router nem veszti el egy időre a kapcsolatot (pl. áramszünet miatt). Egy adott router IP-címét (a külvilág felé) a Router admin felületén, vagy a http://www.myipaddress.com/show-my-ip-address/ oldalon nézhetjük meg (azon az hálózaton kiadva a parancsot, ahol a szunnyadó gép van). Az így kinyert globális IP-címet kell megadni az ébresztést végző programoknak.

Még egy fontos dolog van, amit meg kell értenünk. Gondoljunk bele! Kintről jön a Router-en át egy kis ébresztő üzenet, egy MAC-address-el és a 9-es porttal megjelölve. A Router mögötti helyi hálózaton van több gép. Honnan fogja tudni szegény Router, hogy melyik gépnek szól az ébresztő parancs? Szerencsés esetben a Router a mögötte lévő összes gépnek megküldi az ébresztést (Broadcast). Akire ez vonatkozik, az magára ismer és felébred.

De azt is lehet, hogy csak az adott gép kapjon üzenetet. Ekkor a DHCP-ben be kell állítanunk, hogy az adott MAC-address-hez mindig egy általunk megadott IP-cím osztódjon ki! Ez azt jelenti majd, hogy akárhányszor beindítjuk azon a hálózaton azt a gépünket, mindig az általunk előre beállított, fix IP-címet fogja az megkapni. Ha a gépet másik hálózatba visszük, ott persze ez nem lesz igaz!

A router-ekben és a számítógépekben üzemelnek tűzfalak. Ezek olyan falaknak foghatók fel, amelyeken csak ott van lyuk, ahol a szolgáltatásokat végző osztályoknak vannak az ajtói. Tehát a 0...65535-ig terjedő portok közül a tűzfal azokat a portokat (kapukat) tartja nyitva, amelyek mögött valóban léteznek figyelő programok. Ilyen figyelő például a 9-es porton a WOL a hálózati kártyában.

Mik kellenek tehát ahhoz, hogy egy távoli számítógépet beindíthassunk?

  • Legelőször is az kell, hogy adminisztrátori jogunk legyen az indítani kívánt gép oldali Router-hez! Ha ez nincs, akkor trükközéshez kell folyamodnunk, melynek ismertetése túlmutat e cikk keretein.
  • Kell egy program (pl. gwakeonlan), ami kiadja a WOL-parancsot a távoli gépnek.
  • Tudnunk kell a távoli gép MAC-address-ét és be kell állítanunk ebben a programban. Tehát fel kell írnunk azt egy papírra és a másik helyen ezt kell bállítani az ébresztő gépen.
  • A távoli (ébresztendő gép oldali) Router-ben a tűzfalon be kell állítani, hogy melyik IP-címhez tartozik (fixen) a MAC-address, amit ébreszteni akarunk (DHCP beállításoknál).
  • Ugyanezen a Router-en az ébresztendő gép IP-címét fixen össze kell rendelnünk a 9-es porttal (a Port Forwarding menüpontban).
  • A távoli gépnek ébreszthető módon kell kikapcsolva lenni!
  • A távoli gép BIOS-ában engedélyezni kell a WOL-t!
  • Ha szükséges, Operációs rendszerben is engedélyezni kell (pl. Windows 7 ilyen)
  • Amikor a gép beindul, a tűzfalon engedélyezve kell legyenek azok a portok, amiken keresztül a gépet használni szeretnénk. 22-es port ssh esetén, 5900-as VNC esetén, 21-es FTP esetén...stb.

Fontos! Wi-Fi hálózatra kapcsolt gépet általában nem lehet WOL-al felébreszteni!

Mi van, ha nem működik, ha nem indul be a távoli gép? Ilyenkor indítsa be valaki az ébreszteni kívánt gépet (pl. Skype-n történő kapcsolattartás mellett) és indítson el rajta egy Wake on Lan Monitor/Sniffer nevű programot! Vagy Wireshark-ot, amin kiválasztja a figyelni kívánt hálózati eszközt (kártyát) és a szűrőn beállítja: wol. Ez kiírja, mikor az ébresztő parancsot kiadták és az megérkezik. Ha nem ír ki semmit, akkor a felébresztő mágikus csomag (Magic Packet, ahogyan angolul hívják) nem érkezett meg. Ilyenkor a gépet tegyük ki egymagában a Router helyére a modem mögé (ha van) és próbáljuk meg úgy elküldeni neki a mágikus csomagot! Ha ez sem megy, akkor nézzük meg, hogy helyi hálózaton az ébresztést végző gép fel bírja-e ébreszteni az ébresztendőt!

És még egy fontos dolog! Az interneten számos fórum szól a WOL-lal való szenvedésekről. Ezek egyik közös gyökere az, hogy olyan ébresztést végző WOL szoftvert használnak, ami nem megfelelő, amiben nem lehet az alhálózati maszkot megadni! Ez az Internetről, távoli elérés esetén mindig 255.255.255.255 kell, legyen! A tesztelés remekül végezhető olyan mobiltelefonnal, amin van adatkapcsolat (és a Wi-Fi ki van rajta kapcsolva!), ugyanis ilyenkor a telefon egy másik hálózatot használ (a mobilszolgáltató hálózatát), nem az otthonit. Android-os telefonon nekem a Depicus Wake On Lan Free remekül használható. Viszont számos olyan WOL alkalmazás van, ami NEM működik!!! Illetve ha működik is, csak helyi hálózaton. Ezeknél többnyire a subnet-mask beállítás lehetőségének hiánya az ok.

Ha otthon több gép is van, a portok különválasztásával a Routeren a port forwarding-ban külön-külön felébreszthetők lehetnek úgy, hogy más-más portokat rendelünk a gépek ip-címeihez (pl. három gép esetén 7, 8 és 9).

Aki tud angolul, annak itt van egy nagyszerű leírás a szükséges műveletekről.

A fenti leírás első olvasatra talán kissé bonyolultnak tűnhet. Ha valaki mégsem tud megbirkózni ilyesmivel, kérje szakember segítségét!

Sok sikert kívánok!

 

 

 

 


Módosítás dátuma: 2017. július 22. szombat, 14:14
 

bottom
top

Olvasóink

Oldalainkat 417 vendég böngészi

A legújabbak

A legnépszerűbbek


bottom