Prieš perinstaliuodami klientą, užsirašykite tris dalykus: kiek laiko tunelis buvo aktyvus, ką klientas pasakė atsijungimo metu ir ar mašina tuo metu miegojo arba keitė tinklą. Tas užrašas bus vienintelis įrodymas, kurį turėsite vėliau, o perinstaliavimas paprastai jį ištrina. Atsijungimas pasikartojančiu intervalu yra laikmatis arba būsenos pasibaigimas; atsijungimas atsitiktiniu momentu yra kelio problema. Toliau pateikta tvarka neleidžia pakeisti trijų dalykų vienu metu ir nieko neišmokti.

Pirmas žingsnis: užfiksuokite intervalą ir klaidos tekstą

Pradėkite nuo paties kliento žurnalo, o ne tiekėjo skydelio. Linux kliente tarnybos žurnalas ir gyva tunelio būsena apima didžiąją dalį to:

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

Užsirašykite paskutinio sėkmingo rankos paspaudimo laiko žymes ir momentą, kai srautas sustojo, o ne tik momentą, kai piktograma pakeitė spalvą. GUI klientas, kuris apie atsijungimą praneša po fakto, galbūt praneša apie būseną, kurią branduolys pasiekė kelias sekundes anksčiau.

Išsaugokite klaidos formuluotę. Skirtojo laiko pabaiga, autentifikavimo atmetimas ir adapterio ar tvarkyklės klaida nurodo tris skirtingus sluoksnius, o didžioji dalis šioje problemoje iššvaistyto darbo kyla iš to, kad jie traktuojami kaip vienas. Nukopijuokite eilutę pažodžiui į savo užrašą.

Antras žingsnis: pakeiskite vieną kintamąjį, o ne profilį

Laikykite įrenginį ir profilį fiksuotus ir perkelkite mašiną į kitą prieigos tinklą, pavyzdžiui, telefono hotspotą. Tai pigiausias testas, atskiriantis klientą nuo kelio. Vykdykite jį pakankamai ilgai, kad apimtų pradinį gedimo intervalą; dvi stabilios minutės nieko neįrodo apie atsijungimą, įvykstantį trisdešimtą minutę.

Nešiojamasis kompiuteris su Ethernet prievadu suteikia antrą palyginimą, kuris visiškai pašalina Wi-Fi iš vaizdo. Jei tunelis išlieka abiejose alternatyvose, pradinis prieigos tinklas nusipelno dėmesio: roamingas tarp prieigos taškų, namų maršrutizatorius, kurio vertimo lentelė baigia galioti, arba aukštesnė jungtis, kuri atstato ilgus srautus.

Užsirašykite, kurį kintamąjį pakeitėte. Palyginimas galioja tik tada, kai viskas kita liko taip pat, ir tai apima serverio galinį tašką bei paros laiką.

Trečias žingsnis: susiekite intervalą su sluoksniu

Geros sesijos trukmė yra informatyviausias vienintelis skaičius, kurį turite. Perskaitykite jį pagal šį sąrašą prieš liesdami laikmačius:

  • Atsijungimas po miego arba atnaujinimo: tunelio būsena išgyveno sustabdymą, bet sąsaja ne. Patikrinkite kliento pakartotinio prisijungimo elgesį atnaujinant ir ar tarnyba iš naujo paleidžia tunelį, ar laukia srauto.
  • Atsijungimas tik tuščiosios eigos metu: kažkas viduryje leido srautui pasibaigti. Būtent tam atvejui ir egzistuoja keepalive.
  • Atsijungimas esant fiksuotam sesijos amžiui: pakartotinio autentifikavimo arba rakto atnaujinimo įvykis, o ne kelio gedimas. Aiškus atmetimas žurnale būtent tuo intervalu yra požymis.
  • Atsijungimas didelių perdavimų arba didelių puslapių metu: įtarkite MTU ir fragmentaciją, o ne tuščiosios eigos laikmatį.

Tuščiosios eigos atveju nustatymai priklauso nuo protokolo ir abu galai svarbūs. OpenVPN keepalive 10 60 serveryje siunčia ping kas 10 sekundžių ir iš naujo paleidžia ryšį po 60 sekundžių be jo; WireGuard klientai už NAT naudoja PersistentKeepalive = 25 partnerio bloke. OpenVPN taip pat iš naujo derasi dėl duomenų kanalo pagal laikmatį, reneg-sec, kuris pagal nutylėjimą yra 3600 sekundžių 2.x versijoje.

Nekopijuokite agresyvių reikšmių iš kito tiekėjo vadovo. Trumpas skirtasis laikas nuostolių turinčioje mobiliojo ryšio jungtyje sukuria būtent tuos atsijungimus, kurių turėjo išvengti, o serverio siunčiamos reikšmės nustelbia tai, ką nustatote kliento profilyje.

Ketvirtas žingsnis: palyginkite vieną palaikomą alternatyvą

Jei operatorius skelbia ir UDP, ir TCP profilį, paleiskite tą patį įrenginį ir tinklą prieš kitą. Naudokite tikrą atitinkantį failą, o ne redaguokite transportą nukopijuotame profilyje. Stabilus TCP profilis kelyje, kuriame UDP atstatomas, susiaurina problemą iki to kelio; tai neįrodo, kad TCP yra geresnis transportas visur.

Ta pati logika galioja galiniams taškams. Išbandykite kitą serverį ir laikykite pradinį rezultatą šalia. Jei sesijas atstato tik viena išvestis, tai įrodymas apie tą galinį tašką, o ne priežastis perstatyti kiekvieną adapterį nešiojamajame kompiuteryje.

Po bet kokio pakeitimo pakartokite pradinį paleidiklį ir patvirtinkite, kur srautas iš tikrųjų eina. Atgautas interneto ryšys nėra tas pats rezultatas kaip srautas tunelio viduje, o klientas, kuris tyliai grįžo į tiesioginį maršrutą, atrodo sveikas iš naršyklės.

Patikrinkite pataisą ir išsaugokite galimybę grįžti

Pataisa patikrinama atkuriant pradinį paleidiklį, o ne sėkmingu prisijungimu. Palikite tunelį tuščiosios eigos būsenoje ilgiau nei senasis gedimo intervalas, vieną kartą sustabdykite ir atnaujinkite, o tada patikrinkite rankos paspaudimo amžių ir išėjimo adresą:

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

Išsaugokite ankstesnį profilį ir ankstesnes laikmačio reikšmes, kol naujas elgesys išgyvens visą darbo dieną. Jei atsijungimai grįžta, atkurkite atsarginę kopiją, o tada iš naujo taikykite pakeitimus po vieną, kad antrasis bandymas prasidėtų nuo žinomos būsenos.

Jei žurnalas išlieka švarus, o tunelis vis tiek atsijungia pasikartojančiu intervalu, kita stotelė yra tos sesijos serverio pusė. Pasiimkite kliento sesijos identifikatorių ir tikslų atsijungimo laiką, nes būtent ši pora padaro serverio žurnalą paiškomą. Protokolo jungties parinktys dokumentuotos OpenVPN 2.6 vadove kai jums reikia tikslios reikšmės prasmės.

Susiję straipsniai