Ako spustiť tunel WireGuard ako službu systemd
Šablóna wg-quick@ zdvihne pomenovaný profil a nainštaluje trasy, DNS a háky. Overte unit, nechajte jedného správcu zodpovedného a otestujte odstránenie.
Máte profil WireGuard v /etc/wireguard/wg0.conf a chcete ho mať spustený bez ručného písania wg-quick up po každom reštarte. Balíkovaná šablóna systemd robí presne to: [email protected] spúšťa wg-quick pre profil s názvom wg0. Nainštaluje aj adresy, trasy, DNS a akékoľvek háky, ktoré profil deklaruje, čo je viac než len načítanie kľúča do jadra. Overte, či šablóna vo vašom systéme naozaj existuje, skôr než to budete predpokladať.
Zvyšok tohto návodu ide v poradí, v akom by ste to naozaj robili.
Nájdite unit a profil, ktorý číta
Vypíšte súbory unitov pomocou systemctl list-unit-files 'wg-quick*'. Na distribúciách, ktoré to balia, uvidíte [email protected], pričom názov inštancie sa berie z profilu. Inštancia sa prekladá na /etc/wireguard/<name>.conf, takže wg-quick@wg0 číta len wg0.conf a nič iné. Ak je zoznam prázdny, balík nástrojov nie je nainštalovaný a žiadne povoľovanie nepomôže.
Držte profil v režime 600 a vo vlastníctve roota. Obsahuje súkromný kľúč a unit bude ochotne bežať s horšími právami, ak to dovolíte.
Zdvihnite ho a čítajte journal
Spustite inštanciu pomocou systemctl start wg-quick@wg0, potom skontrolujte systemctl status wg-quick@wg0 a journalctl -u wg-quick@wg0 -b. Unit, ktorý sa spustí a hneď skončí, má zvyčajne chybu profilu a journal pomenuje riadok. Potvrďte pomocou wg show, že rozhranie existuje a že posledný handshake je nedávny. Príručka k wg-quick uvádza, čo skript robí nad rámec samotného rozhrania.
Nakonfigurované rozhranie bez handshake je problém cesty alebo kľúča, nie služby.
Nechajte jedného správcu zodpovedného
Ak tunel už vlastní NetworkManager alebo iný klient, spustenie systemd unitu vytvorí druhého vlastníka toho istého rozhrania, trás a DNS. Príznaky sú mätúce: tunel sa zdvihne, potom trasy zmiznú, alebo sa DNS po pár sekundách vráti späť. Vyberte jedného správcu a druhého pre daný profil vypnite. Journal zvyčajne ukazuje prevzatie ako zmeny trás alebo resolvera hneď po tom, čo unit hlási úspech.
Dvaja správcovia si vlastníctvo nerozdeľujú. Prepisujú sa navzájom.
Otestujte zastavenie, reštart a štart systému
Spustite systemctl stop wg-quick@wg0 a potvrďte, že rozhranie zmizlo a trasy boli odstránené. Potom ho znova spustite a skontrolujte, či sa trasy vrátia, pretože chyby pri odstraňovaní sa prejavujú ako zostávajúce trasy, nie ako neúspešné štarty. Nakoniec ho povoľte pri štarte pomocou systemctl enable --now wg-quick@wg0 a raz reštartujte.
Pri štarte sa musí názov koncového bodu preložiť skôr, než unit beží. Ak DNS ešte nefunguje, unit zlyhá a zostane zlyhaný, kým ho nespustíte ručne.
Zapíšte vlastníka
Zapíšte, ktorý profil unit číta, ktorý správca vlastní rozhranie a odkiaľ súbor prišiel. Keď niekto neskôr importuje ten istý tunel do desktopového klienta, táto poznámka je rozdiel medzi migráciou a dvoma nasadeniami, ktoré sa bijú o jednu adresu. Zapíšte aj názov rozhrania, pretože dva profily s podobnými názvami sú obvyklým zdrojom zmätku.
Tunel s dvoma vlastníkmi funguje do prvého reštartu a potom je záhadou. Preto poznámka patrí do repozitára, nie do chatového vlákna.