Masz profil WireGuard w /etc/wireguard/wg0.conf i chcesz, aby był uruchomiony bez ręcznego wpisywania wg-quick up po każdym restarcie. Szablon systemd z pakietu robi dokładnie to: [email protected] uruchamia wg-quick dla profilu o nazwie wg0. Instaluje też adresy, trasy, DNS i wszelkie haki deklarowane przez profil, co jest czymś więcej niż tylko wczytaniem klucza do jądra. Sprawdź, czy szablon istnieje w twoim systemie, zanim założysz, że istnieje.

Reszta tego przewodnika idzie w kolejności, w jakiej naprawdę byś to robił.

Znajdź unit i profil, który czyta

Wypisz pliki unitów za pomocą systemctl list-unit-files 'wg-quick*'. W dystrybucjach, które to pakują, zobaczysz [email protected], a nazwa instancji pochodzi z profilu. Instancja jest rozwiązywana na /etc/wireguard/<name>.conf, więc wg-quick@wg0 czyta tylko wg0.conf i nic więcej. Jeśli lista jest pusta, pakiet narzędzi nie jest zainstalowany i żadne włączanie nie pomoże.

Trzymaj profil w trybie 600 i w posiadaniu roota. Zawiera klucz prywatny, a unit chętnie będzie działać z gorszymi uprawnieniami, jeśli mu pozwolisz.

Podnieś go i przeczytaj journal

Uruchom instancję za pomocą systemctl start wg-quick@wg0, a następnie sprawdź systemctl status wg-quick@wg0 i journalctl -u wg-quick@wg0 -b. Unit, który startuje i od razu kończy pracę, zwykle ma błąd profilu, a journal wskazuje linię. Potwierdź za pomocą wg show, że interfejs istnieje i że ostatni handshake jest świeży. Podręcznik wg-quick wymienia, co skrypt robi poza samym interfejsem.

Skonfigurowany interfejs bez handshake to problem ścieżki lub klucza, a nie usługi.

Zostaw jednego menedżera

Jeśli NetworkManager lub inny klient już posiada tunel, uruchomienie unitu systemd tworzy drugiego właściciela tego samego interfejsu, tras i DNS. Objawy są mylące: tunel się podnosi, po czym trasy znikają albo DNS wraca po kilku sekundach. Wybierz jednego menedżera i wyłącz drugiego dla tego profilu. Journal zwykle pokazuje przejęcie jako zmiany tras lub resolwera zaraz po tym, jak unit zgłosi sukces.

Dwaj menedżerowie nie dzielą się własnością. Nadpisują się nawzajem.

Przetestuj zatrzymanie, restart i rozruch

Uruchom systemctl stop wg-quick@wg0 i potwierdź, że interfejs zniknął, a trasy zostały usunięte. Potem uruchom go ponownie i sprawdź, czy trasy wracają, bo błędy demontażu ujawniają się jako pozostałe trasy, a nie jako nieudane starty. Na koniec włącz go przy rozruchu za pomocą systemctl enable --now wg-quick@wg0 i zrestartuj raz.

Przy rozruchu nazwa punktu końcowego musi zostać rozwiązana, zanim unit ruszy. Jeśli DNS jeszcze nie działa, unit zawodzi i pozostaje w stanie błędu, dopóki nie uruchomisz go ręcznie.

Zapisz właściciela

Zapisz, który profil czyta unit, który menedżer posiada interfejs i skąd pochodzi plik. Kiedy ktoś później zaimportuje ten sam tunel do klienta desktopowego, ta notatka jest różnicą między migracją a dwoma wdrożeniami walczącymi o jeden adres. Zapisz też nazwę interfejsu, bo dwa profile o podobnych nazwach to zwykłe źródło zamieszania.

Tunel z dwoma właścicielami działa do pierwszego restartu, a potem staje się zagadką. Dlatego notatka należy do repozytorium, a nie do wątku czatu.

Powiązane artykuły