Vertaislaite, jonka lisäsit wg set-komennolla, vastaa ping-kyselyihin koko iltapäivän ja on uudelleenkäynnistyksen jälkeen poissa. Mitään ei vioittunut: ydin ei koskaan tallentanut kyseistä vertaislaitetta minnekään muualle kuin elävään liitäntään, ja kaikki mikä luo liitännän uudelleen käynnistyksen yhteydessä, rakensi sen tiedostosta, jota et koskenut. Korjaus ei ole yksi wg set lisää. Pitää selvittää, mikä komponentti omistaa liitännän, muokata kyseisen komponentin tilaa ja sitten todistaa, että vertaislaite selviytyy täsmälleen siitä elinkaaritapahtumasta, joka sen poisti.

Toista se kerran, tarkoituksella

Älä korjaa uudelleenkäynnistyksen ongelmaa ennen kuin näet sen tapahtuvan. Kun konsoli- tai kaistan ulkopuolinen pääsy on käytettävissä, kirjoita vertaislaiteluettelo muistiin, käynnistä uudelleen liitännän omistavan palvelun kautta ja vertaa. Jos vertaislaite on yhä paikallaan, muutoksesi on jo saavuttanut pysyvän tilan ja etsit vikaa väärästä tapahtumasta.

Kirjoita kolme tosiasiaa muistiin samalla: liitännän nimi, sen käynnistänyt unit tai profiili ja nollattiinko selviytyneen vertaislaitteen kättelylaskuri. Nollattu laskuri tarkoittaa, että liitäntä tuhottiin ja luotiin uudelleen; muuttumaton laskuri ja puuttuva vertaislaite tarkoittaa, että jokin muokkasi kokoonpanoa jalkojesi alta.

Kuka omistaa liitännän?

WireGuardilla itsellään ei ole taustaprosessia eikä kokoonpanotiedostoa. Jokin sen yläpuolella kutsuu komentoa wg käynnistyksen yhteydessä, ja se jokin on totuuden lähde. Tavallisia ehdokkaita ovat [email protected], NetworkManagerin yhteysprofiili, jakelukohtainen verkkoyksikkö tai hallintapaneeli, joka kirjoittaa oman tietokantansa.

Kysy järjestelmältä, älä jakelusi dokumentaatiosta. systemctl status wg-quick@wg0 ja nmcli connection show ratkaisevat asian yleensä yhdellä komennolla kumpikin. Jos molemmat vaativat liitäntää itselleen, löysit vian ennen kuin muokkasit mitään: kaksi omistajaa kirjoittaa saman laitteen uudelleen joka käynnistyksellä, ja viimeisenä ajettava voittaa.

systemctl status wg-quick@wg0 --no-pager
grep -R "Address\|SaveConfig\|PostUp" /etc/wireguard/wg0.conf
nmcli -g NAME,TYPE connection show
wg show wg0 peers

Ajonaikainen tila ja käynnistystila eivät ole sama tiedosto

wg set käsittelee elävää laitetta netlinkin kautta. Se ei kirjoita tiedostoa /etc/wireguard/wg0.conf, NetworkManager-profiilia tai paneelin tietokantaa. Onnistunut wg show sen jälkeen todistaa, että ydin hyväksyi vertaislaitteen, ei että jokin palauttaa sen.

Toinen ansa on vastakkaisessa suunnassa. wg-quickin SaveConfig-asetus kirjoittaa liitännän nykyisen tilan takaisin kokoonpanotiedostoon, kun liitäntä lasketaan alas. Kun se on käytössä, liitännän ollessa ylhäällä tehty muokkaus tiedostoon voi ylikirjoittua seuraavassa sammutuksessa, ja vannot rivin olleen siellä. Jos vertaislaite palaa jatkuvasti, lue tiedosto pysäytyksen jälkeen, ei ennen sitä.

NetworkManager käyttäytyy taas eri tavalla: se omistaa profiilin ja soveltaa sitä aktivoinnissa, joten käsin muokattu .conf aktiivisen NetworkManager-yhteyden vieressä on pelkkää koristelua. Valitse liitännälle yksi omistaja ja anna toisen hallintaohjelman jättää se rauhaan.

Varmista, että muutos osuu molempiin paikkoihin

Muokkaa ensin pysyvää tilaa, anna sitten omistajan soveltaa se ja tarkista lopuksi elävä tila. Tämä järjestys tarkoittaa, että epäonnistuminen missä tahansa vaiheessa osoittaa yhteen asiaan kolmen sijaan.

# 1. persistent state (wg-quick owner)
sudo vi /etc/wireguard/wg0.conf

# 2. apply through the owner, not by hand
sudo systemctl restart wg-quick@wg0

# 3. verify runtime matches the file
sudo wg show wg0
sudo wg showconf wg0

wg showconf tulostaa elävän kokoonpanon samalla syntaksilla kuin tiedosto käyttää, mikä tekee kahdesta suoraan vertailukelpoisia. Käsittele tulostetta salaisuutena: se sisältää yksityisiä avaimia, joten älä liitä sitä tikettiin tai keskustelukanavaan. Vertaa vertaislaitteiden julkisia avaimia ja sallittuja IP-osoitteita ja tarkista, ettei tarkoituksella poistamasi vertaislaite ole palannut.

Todista, että se selviytyy elinkaaritapahtumasta

Käynnistä omistajan kautta toisen kerran ja vahvista sitten kolme erillistä asiaa: vertaislaite näkyy komennon wg show tulosteessa, kättelylaskuri kasvaa liikenteen jälkeen ja tunnelista riippuva sovellus todella vastaa. Vanhentuneella kättelyllä listattu vertaislaite on reititys- tai avainongelma, ei pysyvyysongelma, ja tämä ero säästää turhan kokoonpanomuutoksen.

Tarkista lopuksi, mitä uudelleenkäynnistys palautti. Uudelleenkäynnistys, joka herättää henkiin tarkoituksella poistamasi vertaislaitteen, on sama vika vastakkaisella merkillä, ja se tarkoittaa yleensä, että kokoonpanon vanhaa kopiota ladataan yhä jostakin. Kirjaa omistaja, tiedostopolku, vertaislaitteen julkinen avain ja tarkistuskomennot kokoonpanon viereen, jotta seuraava henkilö ei löydä tätä uudelleen käynnistämällä tuotantopalvelinta.

Aiheeseen liittyvät artikkelit