VPN пада када екран потамни: закључавање, гашење или спавање?
Закључана сесија, потамнео екран и успавана машина су три различита догађаја. Повежите их са journalctl пре него што окривите механизам одржавања везе VPN-а.
Када неко каже да је VPN умро када је екран потамнео, прво корисно питање је који се од три догађаја заиста догодио: сесија се закључала, панел се искључио или је цела машина отишла у сан. То су одвојени механизми на одвојеним тајмерима и само један од њих може потпуно спречити заказивање процеса. Прођите кроз провере испод редом. Зауставите се на првој која одговара на питање, јер свака следећа одговара на нешто друго.
Прва провера: раздвојите закључавање од гашења и од спавања
Закључавање мења коме је дозвољено да користи сесију; композитор наставља да црта, мрежни стек наставља да ради, а VPN клијент ништа не примећује. Гашење екрана искључује панел после периода мировања и оставља машину потпуно будном. Спавање зауставља процесоре, што значи да се ниједан процес у корисничком простору не заказује, па никакво одржавање везе не може да крене, колико год интервал био кратак.
| Event | What it stops | Can it kill the tunnel? |
|---|---|---|
| Session lock | Input to your session | No |
| Display blank | The panel | No |
| Suspend to RAM | CPU scheduling, hence every process | Yes, and silently |
| Hibernate | Everything, with state written to disk | Yes |
Та табела је разлог зашто „екран је потамнео“ није дијагноза. Радна станица подешена да се затамни после пет минута и оде у сан после тридесет показаће таман екран у шестом минуту са потпуно здравим тунелом. Квар у тридесетом минуту је други догађај са другим решењем, а оба изгледају исто са друге стране собе.
Друга провера: ставите догађаје напајања и мреже на једну временску линију
Читајте дневник за ограничен временски прозор, а не за цело подизање, и укључите и управника пријаве и власника везе:
journalctl -b -u systemd-logind -u NetworkManager --since "45 minutes ago"
systemd-inhibit --list
Прва наредба показује захтеве за сан, буђење и мрежне прелазе који су их следили. Друга показује шта тренутно држи инхибиторну браву, што вам говори блокира ли нешто сан намерно и који је то програм. Прилагодите називе јединица ако власник ваше везе није NetworkManager и запамтите да читање јединице другог корисника или системског дневника зависи од локалне политике.
Линија која недостаје није негативан резултат. Ако дневник изабране јединице није видљив вашем налогу, одсуство записа о спавању ништа не доказује, а закључак „никад није спавало“ из празног филтера је пут којим људи проведу недељу дана подешавајући одржавање везе.
Трећа провера: ако је отишло у сан, одлучите да ли је то било намерно
Када се прелаз у сан појави на временској линији, питање се мења од зашто се VPN сломио на да ли је машина уопште требало да спава. На преносном рачунару одговор је често да, а прекид тунела је очекивано понашање из ког клијент треба да се опорави при буђењу. На радној станици која треба да остане доступна, политика спавања је оно што треба променити. Да бисте одлучили на коју од те две машине гледате, потребно је једно питање, и то није питање на које дневник може да одговори уместо вас.
Промените је кроз контроле које припадају пријављеној сесији или кроз механизам који подржава администратор ако захтев важи за целу машину. Уређивање поставке управника екрана док сте пријављени на други налог није иста радња и изгледаће као да је успело до почетка следеће сесије. Потпуно искључивање управљања напајањем је широка прва реакција која кошта трајања батерије и скрива стварно питање политике.
Четврта провера: ако је остало будно, погледајте мрежу и клијента
Будна машина која је изгубила тунел има једну од три приче: приступна мрежа је пала, VPN клијент се зауставио или поново покренуо, или је страна сервера пустила асоцијацију да истекне док је клијент даље веровао да је повезан. Упоредите временске ознаке основног догађаја везе са догађајем тунела и будите прецизни који је дошао први.
Затим тестирајте пут опоравка одвојено од изворне сесије. Нови захтев кроз опорављени тунел може да успе док дуготрајна сесија апликације отворена пре прекида остаје покварена, јер апликација држи застарели сокет или кеширану адресу. То је проблем апликације, а не доказ да се тунел није вратио.
Шта садржи користан извештај
Запишите след са временским ознакама и власницима: када се сесија закључала, када се екран затамнио, да ли је забележен захтев за сан, када је веза пала и вратила се, када је тунел променио стање и шта је апликација заправо урадила. Свака ставка има власника, па се свака ставка може предати правој особи уместо да постане општа жалба на Linux.
Ако недостаје било који од тих редова, то је следеће што треба измерити, а не следеће што треба променити. Временска линија са празнином је информативнија од промене поставки донете на основу претпоставке.