Sådan starter du en WireGuard-tunnel som systemd-tjeneste
Skabelonen wg-quick@ rejser en navngivet profil og installerer ruter, DNS og hooks. Bekræft uniten, hold én administrator ansvarlig og test nedtagningen.
Du har en WireGuard-profil på /etc/wireguard/wg0.conf, og du vil have den oppe uden at skrive wg-quick up i hånden efter hver genstart. systemd-skabelonen fra pakken gør præcis det: [email protected] kører wg-quick for profilen med navnet wg0. Den installerer også adresser, ruter, DNS og eventuelle hooks, som profilen erklærer, hvilket er mere end blot at indlæse en nøgle i kernen. Kontroller, at skabelonen findes på dit system, før du antager, at den gør det.
Resten af denne gennemgang følger den rækkefølge, du reelt ville arbejde i.
Find uniten og den profil, den læser
List unitfilerne med systemctl list-unit-files 'wg-quick*'. På distributioner, der pakker den, ser du [email protected], hvor instansnavnet tages fra profilen. Instansen opløses til /etc/wireguard/<name>.conf, så wg-quick@wg0 læser wg0.conf og intet andet. Hvis listen er tom, er værktøjspakken ikke installeret, og ingen mængde aktivering hjælper.
Hold profilen på tilstand 600 og ejet af root. Den indeholder en privat nøgle, og uniten kører gerne med dårligere rettigheder, hvis du tillader det.
Rejs den og læs journalen
Start instansen med systemctl start wg-quick@wg0, og tjek derefter systemctl status wg-quick@wg0 og journalctl -u wg-quick@wg0 -b. En unit, der starter og straks afsluttes, har normalt en profilfejl, og journalen nævner linjen. Bekræft med wg show, at grænsefladen findes, og at det seneste handshake er nyligt. wg-quick-manualen viser, hvad scriptet gør ud over selve grænsefladen.
En konfigureret grænseflade uden handshake er et sti- eller nøgleproblem, ikke et tjenesteproblem.
Hold én administrator ved roret
Hvis NetworkManager eller en anden klient allerede ejer tunnelen, skaber start af systemd-uniten en anden ejer af den samme grænseflade, ruter og DNS. Symptomerne er forvirrende: tunnelen kommer op, derefter forsvinder ruterne, eller DNS skifter tilbage efter få sekunder. Vælg én administrator, og deaktiver den anden for den profil. Journalen viser normalt overtagelsen som rute- eller resolverændringer lige efter, at uniten rapporterer succes.
To administratorer deler ikke ejerskab. De overskriver hinanden.
Test stop, genstart og opstart
Kør systemctl stop wg-quick@wg0, og bekræft at grænsefladen er væk, og at ruterne er fjernet. Start den derefter igen, og tjek at ruterne kommer tilbage, fordi nedtagningsfejl viser sig som efterladte ruter snarere end som mislykkede starter. Aktiver den til sidst ved opstart med systemctl enable --now wg-quick@wg0, og genstart én gang.
Ved opstart skal slutpunktets navn opløses, før uniten kører. Hvis DNS ikke er oppe endnu, fejler uniten og forbliver fejlet, indtil du starter den i hånden.
Skriv ejeren ned
Skriv ned, hvilken profil uniten læser, hvilken administrator der ejer grænsefladen, og hvor filen kom fra. Når nogen senere importerer den samme tunnel i en desktopklient, er den note forskellen mellem en migrering og to udrulninger, der slås om én adresse. Skriv også grænsefladens navn ned, fordi to profiler med lignende navne er den sædvanlige kilde til forvirring.
En tunnel med to ejere virker indtil den første genstart, og så er den et mysterium. Derfor hører noten hjemme i repositoriet og ikke i en chat-tråd.