Væk en sovende hjemmecomputer over VPN: hvor pakken kommer fra
En tunnel kan ikke vække den maskine, den selv afslutter. Læg magic packet på hjemme-LAN’et, bekræft adapter og strømtilstand, og tilslut derefter.
Du opretter forbindelse, routeren svarer, og skrivebordet forbliver mørkt. Tunnelen er fin; pakken, der skulle have vækket maskinen, nåede aldrig det segment, hvor maskinen lytter. Går du vejen baglæns fra routeren, ser du, hvor den dør.
Tre enheder har tre opgaver. At blande dem sammen er den sædvanlige grund til, at et vækkeforsøg kører i ring for evigt.
Start ved fjernklienten og følg vejen
Fra et hotelnetværk forbinder du til hjemmerouteren, som er det eneste altid aktive endepunkt i billedet. En vækkeforespørgsel, du skriver på din bærbare, bliver almindelig tunneltrafik, adresseret til hvilken som helst destination, du har angivet. Den destination afgør alt, hvad der følger.
Hvis du sendte den til hjemmerouterens LAN-adresse på magic-packet-porten, kan routeren acceptere datagrammet og aldrig udsende en ramme på hjemmesegmentet, fordi intet der lytter på den port. Hvis du broadcaster den inde i tunnelen, stopper den ved tunnelinterfacet. En routet tunnel er ikke en udvidelse af lag 2 af husets ledningsnet. Følg vejen hop for hop, og blindgyden bliver tydelig.
Den kontrol, der afgør sagen, kræver én kommando fra fjernsiden og én fra hjemsiden. Send forespørgslen, og hold derefter øje med hjemmesegmentet for rammen.
Flyt afsenderen ind på hjemmesegmentet
Routeren kan selv klare vækningen, når du først er godkendt gennem tunnelen. OpenWrt dokumenterer en Wake-on-LAN-tjeneste, der kører på enheden og udsender rammen lokalt, hvilket er præcis den form, der er brug for: fjernbetjent godkendelse udenfor, lokal broadcast indenfor.
Den ordning holder også vækkefunktionen væk fra det offentlige internet. Intet nyt bliver eksponeret mod internettet, fordi udløseren kører over den VPN, du allerede stoler på. Alternativet, en vækketjeneste med videresendt port, bytter en lille bekvemmelighed for et internetvendt endepunkt, som enhver kan probe.
Den cirkulære afhængighed er værd at navngive rent ud. En VPN-klient installeret på skrivebordet kan ikke vække det skrivebord, fordi klientprocessen har brug for, at maskinen kører. Hold fjernadgangspunktet på routeren eller en anden altid aktiv boks, og lad skrivebordet være kun et mål.
Bekræft målet, før du bebrejder tunnelen
Hardware afgør denne del, ikke VPN’en, og strømtilstanden afgør den først. Adapteren skal understøtte vækning, firmwaren skal lade adapteren være strømforsynet i dvale, og styresystemet skal være konfigureret til at tillade det. En maskine, der er suspenderet, er et andet tilfælde end en, der er lukket ned, og begge adskiller sig fra en maskine, hvis strømforsyning er slukket ved væggen. Afklar den tilstand, før du arbejder gennem resten af listen.
Læs hardwareadressen fra den adapter, der faktisk modtager rammen. Et skrivebord med både Ethernet og Wi-Fi har ofte to adresser, og kun én af dem er måske i stand til at vække. Trådløs vækning er en separat egenskab med sine egne firmwarekrav, så en fungerende Ethernet-vækning siger intet om vækning over Wi-Fi.
Bevis først den lokale vej. Send magic packet fra en anden enhed på samme switch og se maskinen komme op. Hvis det fejler, hjælper ingen mængde tunnel-fejlfinding, og fejlen ligger i firmware, adapterindstillinger eller strømtilstanden.
Efter genoptagelse, forbind til den tjeneste, du ønskede
Vækning er ikke fjernadgang. Når maskinen genoptager, skal den stadig starte sine tjenester, få en adresse og acceptere den session, du faktisk har brug for. Giv den tid til at nå den tilstand, før du konkluderer, at vækningen fejlede.
# 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
Linjen arp er den nyttige. En post, der skifter fra ufuldstændig til en rigtig hardwareadresse, betyder, at maskinen genoptog og svarede; en forespørgsel, der aldrig opløses, peger tilbage på vækketrinnet snarere end på den tjeneste, du forsøgte at nå.
Skil faserne ad i dine noter: vækning, opstart, tjeneste. En fejl i fase to ser identisk ud med en fejl i fase et fra et chatvindue, og kun det lokale bevis kan skelne dem.