Ennen kuin asennat asiakkaan uudelleen, kirjaa kolme asiaa: kuinka kauan tunneli pysyi pystyssä, mitä asiakas sanoi katketessaan ja nukkuiko kone tai vaihtoiko se verkkoa välissä. Se muistiinpano on ainoa todiste, joka sinulla myöhemmin on, ja uudelleenasennus yleensä pyyhkii sen. Toistuvalla välillä tapahtuva katko on ajastin tai tilan vanheneminen; satunnaisella hetkellä tapahtuva katko on reitin ongelma. Alla oleva järjestys estää sinua muuttamasta kolmea asiaa kerralla ja oppimasta mitään.

Ensimmäinen vaihe: kirjaa väli ja virheen teksti

Aloita asiakkaan omasta lokista, älä toimittajan hallintapaneelista. Linux-asiakkaassa palvelun loki ja tunnelin reaaliaikainen tila kattavat suurimman osan siitä:

journalctl -u openvpn-client@client --since '3 hours ago' | tail -60
journalctl -u wg-quick@wg0 --since '3 hours ago' | tail -40
wg show
ip -s link show wg0

Kirjaa viimeisen onnistuneen kättelyn aikaleimat ja hetki, jolloin liikenne pysähtyi, ei vain hetkeä, jolloin kuvake vaihtoi väriä. GUI-asiakas, joka sanoo yhteyden katkenneen jälkikäteen, saattaa raportoida tilan, johon ydin pääsi sekunteja aiemmin.

Säilytä virheen sanamuoto. Aikakatkaisu, todennuksen hylkäys ja sovittimen tai ajurin virhe osoittavat kolmeen eri kerrokseen, ja suurin osa tässä ongelmassa hukatusta työstä tulee siitä, että niitä kohdellaan yhtenä. Kopioi rivi sellaisenaan muistiinpanoosi.

Toinen vaihe: muuta yhtä muuttujaa, älä profiilia

Pidä laite ja profiili ennallaan ja siirrä kone toiseen käyttöverkkoon, kuten puhelimen hotspotiin. Tämä on halvin testi, joka erottaa asiakkaan reitistä. Aja sitä tarpeeksi kauan kattaaksesi alkuperäisen vikavälin; kaksi vakaata minuuttia ei todista mitään katkosta, joka tapahtuu kolmantenakymmenentenä minuuttina.

Kannettava, jossa on Ethernet-portti, antaa toisen vertailun, joka poistaa Wi-Fi:n kuvasta kokonaan. Jos tunneli pysyy molemmilla vaihtoehdoilla, alkuperäinen käyttöverkko ansaitsee huomiota: tukiasemien välinen roaming, kotireititin, jonka käännöstaulu vanhenee, tai ylävirran linkki, joka nollaa pitkäikäiset vuot.

Kirjaa, mitä muuttujaa muutit. Vertailu laskee vain, kun kaikki muu pysyi samana, ja siihen kuuluu palvelimen päätepiste ja vuorokaudenaika.

Kolmas vaihe: yhdistä väli kerrokseen

Hyvän istunnon pituus on informatiivisin yksittäinen luku, joka sinulla on. Lue se tätä luetteloa vasten ennen kuin kosket ajastimiin:

  • Katko unen tai jatkamisen jälkeen: tunnelin tila selvisi keskeytyksestä, mutta verkkoliitäntä ei. Tarkista asiakkaan uudelleenyhdistämiskäyttäytyminen jatkettaessa ja se, käynnistääkö palvelu tunnelin uudelleen vai odottaako se liikennettä.
  • Katko vain joutilaana: jokin välissä päästi vuon vanhenemaan. Juuri sitä tapausta varten keepalive on olemassa.
  • Katko kiinteällä istunnon iällä: uudelleentodennus- tai avaimenvaihtotapahtuma, ei reitin vika. Selkeä hylkäys lokissa juuri sillä välillä on merkki.
  • Katko suurten siirtojen tai suurten sivujen aikana: epäile MTU:ta ja pirstoutumista, älä joutilasajastinta.

Joutilastapauksessa asetukset ovat protokollakohtaisia ja molemmat päät merkitsevät. OpenVPN:n keepalive 10 60 palvelimella lähettää pingin 10 sekunnin välein ja käynnistää yhteyden uudelleen, kun sitä ei tule 60 sekuntiin; NAT:n takana olevat WireGuard-asiakkaat käyttävät PersistentKeepalive = 25 vertaislohkossa. OpenVPN neuvottelee myös datakanavan uudelleen ajastimella, reneg-sec, joka on oletuksena 3600 sekuntia versiossa 2.x.

Älä kopioi aggressiivisia arvoja toisen tarjoajan oppaasta. Lyhyt aikakatkaisu häviöllisellä mobiiliyhteydellä tuottaa juuri ne katkot, jotka sen piti estää, ja palvelimen lähettämät arvot ohittavat sen, mitä asetat asiakasprofiiliin.

Neljäs vaihe: vertaa yhtä tuettua vaihtoehtoa

Jos operaattori julkaisee sekä UDP- että TCP-profiilin, aja sama laite ja verkko toista vastaan. Käytä todellista vastaavaa tiedostoa sen sijaan, että muokkaisit siirtoa kopioidussa profiilissa. Vakaa TCP-profiili reitillä, jolla UDP nollataan, rajaa ongelman sille reitille; se ei todista, että TCP olisi parempi siirto kaikkialla.

Sama logiikka pätee päätepisteisiin. Kokeile toista palvelinta ja pidä alkuperäinen tulos sen vieressä. Jos vain yksi ulostulo nollaa istunnot, se on todiste kyseisestä päätepisteestä, ei syy rakentaa uudelleen jokaista sovitinta kannettavassa.

Jokaisen muutoksen jälkeen toista alkuperäinen laukaisin ja vahvista, minne liikenne todella menee. Takaisin saatu internetyhteys ei ole sama tulos kuin liikenne tunnelin sisällä, ja asiakas, joka on hiljaa pudonnut suoralle reitille, näyttää selaimesta terveeltä.

Vahvista korjaus ja pidä palautusmahdollisuus

Korjaus vahvistetaan toistamalla alkuperäinen laukaisin, ei onnistuneella yhteydellä. Jätä tunneli joutilaaksi vanhan vikavälin yli, keskeytä ja jatka kerran, ja tarkista sen jälkeen kättelyn ikä ja lähtöosoite:

wg show wg0 latest-handshakes
curl -m 5 -sS https://ifconfig.me
cp client.ovpn client.ovpn.bak   # before editing timers

Pidä edellinen profiili ja edelliset ajastinarvot, kunnes uusi käyttäytyminen kestää kokonaisen työpäivän. Jos katkot palaavat, palauta varmuuskopio ja ota sitten muutokset uudelleen käyttöön yksi kerrallaan, jotta toinen yritys alkaa tunnetusta tilasta.

Jos loki pysyy puhtaana ja tunneli katkeaa silti toistuvalla välillä, seuraava pysähdys on kyseisen istunnon palvelinpuoli. Ota mukaan asiakkaan istunnon tunniste ja tarkka katkohetki, sillä juuri se pari tekee palvelinlokista haettavan. Protokollan linkkiasetukset on dokumentoitu OpenVPN 2.6 -käsikirjassa kun tarvitset arvon tarkan merkityksen.

Aiheeseen liittyvät artikkelit