Tożsamość znika z działającego interfejsu i zmiana wygląda na zakończoną. Po restarcie usługi wraca, co czyta się tak, jakby WireGuard ignorował polecenie. To, co naprawdę się stało, jest prostsze: konfiguracja startowa nadal zawiera tego peera.

Tę listę trzymają dwa stany. Odwołanie jest prawdziwe tylko wtedy, gdy oba ją utracą.

Co naprawdę zmienia wg set

Polecenie wg set wg0 peer <public-key> remove edytuje działający interfejs w jądrze. Nie zapisuje niczego na dysk. Plik konfiguracji, profil NetworkManagera lub zapisany stan routera pozostają nietknięte. To jest projekt, a nie błąd.

To rozdzielenie jest celowe, bo narzędzie nie ma pojęcia, kto jest właścicielem interfejsu. Polecenie w czasie działania musi być bezpieczne wobec interfejsu zarządzanego przez coś innego. Nie może zgadnąć, gdzie mieszka trwała kopia. Wniosek łatwo wypowiedzieć: usunięcie w czasie działania jest z założenia tymczasowe.

Dlatego peer wraca przy następnym restarcie i wraca ze swoimi pierwotnymi dozwolonymi prefiksami. Wszystko, co jest przez niego routowane, także powstaje od nowa. Rzekomo odwołana tożsamość może więc po ponownym wczytaniu dotrzeć do swoich dawnych celów. Nic w danych wyjściowych czasu działania nikogo nie ostrzegło.

Znajdź zapisującego, zanim edytujesz plik

Interfejs ma właściciela. Może nim być wg-quick czytający plik, NetworkManager stosujący profil, własna konfiguracja interfejsu routera albo punkt wejścia kontenera, który odtwarza interfejs przy starcie. Edycja pliku, którego właściciel nigdy nie czyta, nie daje żadnej trwałej zmiany.

Zacznij od działającego interfejsu i zidentyfikuj klucze publiczne, bo nazwy i adresy to słabsze identyfikatory niż sam klucz. Potem porównaj tę listę z zapisaną konfiguracją, którą właściciel rzeczywiście czyta.

wg show wg0 peers
wg show wg0 allowed-ips
systemctl status wg-quick@wg0 --no-pager
ls -l /etc/wireguard

Żywy interfejs, którego lista peerów i zawartość pliku się nie zgadzają, to cała diagnoza. Zapisana konfiguracja wygrywa przy starcie, a stan czasu działania przegrywa. Porównaj je, zanim zmienisz którykolwiek.

Pułapka SaveConfig

wg-quick dodaje fałdę, która łapie ludzi edytujących pliki ręcznie. Gdy SaveConfig jest włączony, jego udokumentowane zachowanie przy wyłączaniu zapisuje bieżący stan czasu działania na plik konfiguracji.

To odwraca zwykły kierunek trwałości. Usuwasz peera z pliku, a potem usługa się zatrzymuje. Działający stan jest zapisywany na twoją edycję i przywraca peera, którego właśnie skasowałeś.

Dlatego kolejność ma znaczenie: edytuj plik przy wyłączonym interfejsie albo wyłącz SaveConfig przed edycją, potem podnieś interfejs i potwierdź, co zostało wczytane. Ręczna edycja przy włączonym interfejsie to wyścig z zapisem przy wyłączaniu.

Zmień oba stany, potem wczytaj ponownie

W czasie działania usuń peera po kluczu. W zapisanej konfiguracji usuń ten sam blok przez obsługiwaną operację właściciela, zamiast edytować wokół niego.

Potem przejrzyj, co peer niósł. Sieć routowana, która należała do odwołanej tożsamości, powinna zostać świadomie przypisana gdzie indziej albo usunięta, a nie po cichu odziedziczona przez peera, który będzie edytowany następny.

Trzymaj otwartą ścieżkę odzyskiwania, jeśli brama niesie też twój dostęp administracyjny. Restart, który usuwa niewłaściwego peera, to awaria, którą sam sobie sprawiłeś. To samo dotyczy restartu, który usuwa niewłaściwą trasę.

Jak wygląda zaliczony test

Wczytaj ponownie lub zrestartuj usługę, a potem jeszcze raz odczytaj listę peerów. Starego klucza musi brakować, a peery, które chciałeś zachować, muszą nadal być obecne i działać.

wg show wg0 peers
wg show wg0 allowed-ips
sudo wg-quick down wg0 && sudo wg-quick up wg0
wg show wg0 peers

Gdzie sytuacja na to pozwala, potwierdź, że stara tożsamość nie dociera już do swoich dawnych zasobów. Uporządkowana lista interfejsu przed restartem to połowa testu. Druga połowa to, co tożsamość jeszcze potrafi zrobić potem.

Jeśli jakiś menedżer ciągle przywraca peera, przestań powtarzać usuwanie na niskim poziomie. Napraw ewidencję, którą czyta ten zapisujący, bo do tego czasu każdy restart jest kolejnym zaproszeniem dla tożsamości, by znów się pojawiła.

Powiązane artykuły