Skicka ett väckningspaket direkt efter avstängningen och datorn kommer tillbaka; samma kommando nästa morgon gör ingenting. Ingenting i VPN-konfigurationen har ändrats, och portvidarebefordran pekar fortfarande på rätt adress. Skillnaden är tid: routerns grann tabell har glömt den sovande maskinen, så den har ingen MAC-adress att sätta på ramen. Det är den utgången, inte tunneln, som förklarar de flesta Wake-on-LAN-fel över en VPN.

Den första väckningen fungerar och nästa inte

En router vidarebefordrar en ram till en privat adress genom att slå upp målet i sin grann tabell. Medan maskinen körs svarar den på ARP, så mappningen hålls färsk. När den stängs av svarar ingenting, posten åldras ut efter några minuter, och senare ramar till den adressen kastas trots att IP och portvidarebefordran fortfarande är giltiga.

Mönstret berättar vilket fel du har. En väckning som aldrig fungerar pekar på leveransen: fel port, fel mål eller en brandvägg som kastar paketet innan det når LAN. En väckning som fungerar en gång och sedan misslyckas i timmar pekar på grannposten. En väckning som fungerar tills DHCP-leasen ändras pekar på adresseringen, som en reservation rättar till.

Bekräfta att adressen är stabil innan du rör ARP. Får den sovande maskinen en ny adress när en lease löper ut, blir en låst grannpost för den gamla adressen både permanent och oanvändbar samtidigt. Ställ in en DHCP-reservation först så att adressen överlever omstarter.

Vad det magiska paketet behöver från nätverket

Nyttolasten är enkel: 102 byte av sex 0xFF-byte följt av mål-MAC-adressen sexton gånger, vanligen skickat till UDP-port 9. På ett platt LAN går det ut som broadcast, varje port tar emot det, och det avstängda nätverkskortet känner igen sin egen adress.

Över en VPN anländer paketet till routern som unicast till en privat adress eller som subnätriktad broadcast. I unicast-fallet måste routern lösa upp målet till en MAC-adress innan den kan sätta ramen på LAN, och just den upplösningen misslyckas medan värden sover.

Vissa verktyg skickar till port 7 i stället för 9, och vissa enheter blockerar riktad broadcast som standard. Det är leveransfel, inte ARP-fel, så kontrollera mål och port innan du ändrar grann tabellen.

Tre vägar till en sovande värd

Du har tre praktiska sätt att få ramen in på LAN, och rätt val beror på vad du kontrollerar.

MethodWhat it needsWhere it breaks
Subnet-directed broadcastA wake tool that accepts a broadcast address and a router that forwards itBroadcast filtering, or a tool that only takes a MAC
Helper on the LANAn always-on host such as the VPN serverNo suitable host, or the host cannot reach the target VLAN
Permanent neighbour entryRouter shell access and the target MACNIC replacement or address change

Välj hjälpvärden när det finns en, eftersom den broadcastar på länken och inte behöver något routerundantag. Välj riktad broadcast när routern redan tillåter det och väckningsverktyget accepterar en adress. Välj den statiska posten när ingen av dem är tillgänglig och du kan köra ett kommando på routern.

Dessa utesluter inte varandra. En permanent post låter också unicast-vägen överleva sömn, vilket är användbart när VPN-klienten bara kan skicka till en viss adress.

Gör grannposten permanent

På en router med Linux-skal låser ett enda kommando mappningen. Värdena här tillhör ett exempel-LAN och måste ersättas med dina egna:

ip neigh replace 192.168.50.23 lladdr 3c:7c:3f:12:9a:4e dev br0 nud permanent
ip neigh show dev br0 | grep 192.168.50.23

Tillståndet nud permanent håller posten genom ARP-timeouts och använder den för vidarebefordran medan maskinen är avstängd. Det andra kommandot bevisar att posten finns och visar gränssnittet den hör till, vilket spelar roll på routrar med en separat gästbrygga eller VLAN.

Gör den beständig över omstart genom vilken krok som helst som firmware erbjuder: ett skript i /jffs/scripts på Asuswrt-Merlin, en systemd oneshot-enhet på en Linux-server som gateway, en Neighbor= stanza i systemd-networkd, eller en post i /etc/ethers som de lokala verktygen läser. Ett kommando som skrivs i ett skal försvinner vid nästa omstart, och det är den vanligaste orsaken till att en fungerande lösning verkar sluta fungera.

Testa utifrån och vet när den ska tas bort

Försätt maskinen i sömn och vänta minst tio minuter, tillräckligt för att varje dynamisk post ska löpa ut. Skicka sedan väckningsbegäran från VPN-klienten och följ båda sidorna av routern:

tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9

Den första fångsten bevisar att paketet kom från tunneln; den andra att routern satte en ram på LAN. Ett giltigt magiskt paket visas som 102 byte med upprepad MAC, så kontrollera längden liksom målet. Om ramen lämnar LAN-bryggan och maskinen förblir avstängd ligger det återstående problemet i enheten: snabbstart, djupsömn eller en BIOS-inställning som bryter strömmen till nätverkskortet.

Ta bort posten när nätverkskortet byts, och uppdatera den när du flyttar maskinen till en annan adress. En permanent mappning är ett medvetet undantag, och ett undantag som ingen minns är hur en framtida bärbar dator börjar ta emot ramar avsedda för en pensionerad stationär.

Relaterade artiklar