VPN се стално прекида? Прођите ово овим редом
Запишите интервал, грешку клијента и стање мреже пре него што било шта промените. Размак између прекида говори вам који од четири слоја проверити.
Пре него што поново инсталирате клијента, запишите три ствари: колико дуго је тунел био активан, шта је клијент рекао када се прекинуо и да ли је машина у међувремену спавала или променила мрежу. Та белешка је једини доказ који ћете касније имати, а поновна инсталација је обично брише. Прекид у понављајућем интервалу је тајмер или истек стања; прекид у случајном тренутку је проблем пута. Редослед испод вас чува да не промените три ствари одједном и не научите ништа.
Први корак: забележите интервал и текст грешке
Почните са сопственим дневником клијента, а не са контролном таблом добављача. На Linux клијенту дневник услуге плус живо стање тунела покривају већину тога:
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
Забележите временске ознаке последњег успешног руковања и тренутак када је саобраћај стао, а не само тренутак када је икона променила боју. GUI клијент који након чињенице каже да је прекинут можда пријављује стање до којег је кернел дошао неколико секунди раније.
Сачувајте формулацију грешке. Истек времена, одбијање аутентификације и грешка адаптера или драјвера упућују на три различита слоја, а већина изгубљеног труда у овом проблему долази из тога што их третирате као једно. Копирајте ред дословно у своју белешку.
Други корак: промените једну променљиву, не профил
Држите уређај и профил фиксним и преместите машину на другу приступну мрежу, попут мобилног хотспота. Ово је најјефтинији тест који одваја клијента од пута. Покрените га довољно дуго да покрије првобитни интервал квара; два стабилна минута не доказују ништа о прекиду који се догоди у тридесетој минути.
Лаптоп са Ethernet портом даје вам друго поређење које потпуно уклања Wi-Fi из слике. Ако се тунел одржи на обе алтернативе, првобитна приступна мрежа заслужује пажњу: роаминг између приступних тачака, кућни рутер којем истиче табела превођења или надређена веза која ресетује дуготрајне токове.
Запишите коју сте променљиву променили. Поређење се рачуна само када је све остало исто, а то укључује серверску крајњу тачку и доба дана.
Трећи корак: повежите интервал са слојем
Дужина добре сесије је најинформативнији појединачни број који имате. Прочитајте је уз овај списак пре него што дирнете тајмере:
- Прекид након спавања или буђења: стање тунела је преживело обуставу, али интерфејс није. Проверите понашање клијента при поновном повезивању након буђења и да ли услуга поново покреће тунел или чека саобраћај.
- Прекид само када мирује: нешто у средини је пустило ток да истекне. Управо за тај случај постоје keepalive поруке.
- Прекид у фиксној старости сесије: догађај поновне аутентификације или обнове кључа, а не квар пута. Јавно одбијање у дневнику тачно на том интервалу је знак.
- Прекид током великих преноса или великих страница: сумњајте на MTU и фрагментацију, а не на тајмер мировања.
За случај мировања поставке зависе од протокола и оба краја су важна. OpenVPN-ов keepalive 10 60 на серверу шаље пинг сваких 10 секунди и поново покреће везу након 60 секунди без њега; WireGuard клијенти иза NAT-а користе PersistentKeepalive = 25 у блоку партнера. OpenVPN такође поново преговара канал података по тајмеру, reneg-sec, који је по дефаулту 3600 секунди у 2.x.
Не копирајте агресивне вредности из упутства другог провајдера. Кратак тајмаут на мобилној вези с губицима производи управо прекиде које је требало спречити, а вредности које пошаље сервер надјачавају оно што поставите у профилу клијента.
Четврти корак: упоредите једну подржану алтернативу
Ако оператер објављује и UDP и TCP профил, покрените исти уређај и мрежу против оног другог. Користите стварну одговарајућу датотеку уместо да мењате транспорт у копираном профилу. Стабилан TCP профил на путу на којем се UDP ресетује сужава проблем на тај пут; то не доказује да је TCP бољи транспорт свуда.
Иста логика важи и за крајње тачке. Испробајте други сервер и држите првобитни резултат поред њега. Ако само један излаз ресетује сесије, то је доказ о тој крајњој тачки, а не разлог да поново градите сваки адаптер на лаптопу.
Након сваке промене поновите првобитни окидач и потврдите куда саобраћај заиста иде. Повраћен приступ интернету није исти резултат као саобраћај унутар тунела, а клијент који је тихо пао на директну руту изгледа здраво из прегледача.
Проверите поправку и сачувајте могућност враћања
Поправка се проверава репродукцијом првобитног окидача, а не успешним повезивањем. Оставите тунел да мирује дуже од старог интервала квара, једном га обуставите и пробудите, па проверите старост руковања и излазну адресу:
wg show wg0 latest-handshakes
curl -m 5 -sS https://ifconfig.me
cp client.ovpn client.ovpn.bak # before editing timers
Држите претходни профил и претходне вредности тајмера док ново понашање не преживи цео радни дан. Ако се прекиди врате, вратите сигурносну копију, па затим поново примените промене једну по једну како би други покушај почео из познатог стања.
Ако дневник остане чист, а тунел се и даље прекида у понављајућем интервалу, следећа станица је серверска страна за ту сесију. Понесите са собом идентификатор сесије клијента и тачно време прекида, јер тај пар чини серверски дневник претраживим. Опције везе протокола документоване су у OpenVPN 2.6 приручнику када вам треба тачно значење неке вредности.