Тек ұйқы ілмегі ғана VPN-ды қайтармайды
Нөлмен шығатын ілмек скрипттің іске қосылғанын ғана дәлелдейді. Оны желіден кейін қойыңыз, дұрыс сәйкестікті пайдаланыңыз және профильдің жарамды екенін тексеріңіз.
Ұйқы ілмегіне қайта қосылу командасын қойыңыз — мәселе шешілгендей көрінеді. Ол ілмек желі пайда болғаннан кейін, клиент танитын сәйкестік ретінде, клиент шынымен жүзеге асыратын жолмен іске қосылғанда ғана шешіледі. Оянғаннан кейінгі қателердің көбісі осы үшеуінің бірі, және олардың ешқайсысы ілмектің өзінде қате ретінде көрінбейді. Ілмек қалай болса да сәттілік қайтарады.
Нөлмен шығатын скрипт сізге туннельдің қайтып келгені туралы ештеңе айтқан жоқ.
Ілмек іске қосылады, сосын не?
#!/bin/sh
case "$1" in
pre)
vpn-client disconnect
;;
post)
vpn-client connect
;;
esac
Әр оқиға ілмекті екі рет шақырады — ауысудан бұрын және кейін — оған фазаны және оқиға атауын береді. Ол root ретінде ең аз ортада жұмыс істейді, сондықтан абсолютті жолдар қажет және ешқандай жұмыс үстелі сессиясының айнымалысын күтуге болмайды. Екі шақырудың тез қайтуы скрипттің іске қосылғанын ғана білдіреді. Профильдің кейін көтерілгені бөлек бақылау және журналда өз дәлелін қажет етеді.
Фаза аргументін дизайнның бөлігі ретінде қарастырыңыз. pre фазасындағы қайта қосылу әрекеті машина бәрін жоғалтуға шамалас кезде болады және сәтті бола алмайды.
Root, ең аз орта, қате пайдаланушы
Егер клиент кіру токенін әр пайдаланушы бойынша сақтаса, ілмекті root ретінде іске қосу оған ұсынатын ештеңе қалдырмайды. Күйді ілмек шынымен қолданатын сәйкестік астында тексеріңіз, жұмыс үстелі терминалынан сынаған сәйкестік астында емес. Кейбір құрастырулар ажыратудан кейін интерфейсті ұстап тұратын демонды да қалдырады, сондықтан қайта қосылу ескірген күйге түседі, ал процесті алдын ала тазарту оны таза емес өшіру құнына қалпына келтіреді. Екі мінез-құлық та тек бақытты жолды сынағанда көрінбейді.
Ілмекті абсолютті жолдармен жазыңыз, оны root меншігінде және орындалатын күйде ұстаңыз, және не істегенін журналға жазыңыз. Сол журналсыз келесі тергеу нөлден басталады.
Автоматты қосылу VPN жолы емес
NetworkManager екі белсендіру механизмін ұсынады: профильдегі автоматты қосылу жалаушасы және негізгі профиль белсендірілгенде басталатын қайталама қосылымдар. Жергілікті құрылғы түрлері біріншісін жүзеге асырады; VPN қосымшалары тарихи түрде тек екіншісін жүзеге асырған, сондықтан OpenVPN профилінде автоматты қосылуды белгілеу мүлдем әсер етпеуі мүмкін. Екі қасиетті де тексеріңіз, содан кейін VPN-ды Wi-Fi немесе Ethernet профилінің қайталамасы ретінде тіркеңіз.
[Unit] PartOf=NetworkManager.service Requires=NetworkManager-wait-online.service After=NetworkManager-wait-online.service
systemd бірлігімен басқарылатын WireGuard интерфейсіне ілмектің орнына сол қосымша файл қажет, желі желіге қосылғаннан кейін реттелген.
Ояну кезінде желіні күтіңіз, шектеумен
timer=1 while ! ping -c1 -n -w1 203.0.113.1 >/dev/null; do sleep 1; timer=$((timer+1)) [ $timer -ge 300 ] && exit 0 done nmcli connection up "work-vpn"
Ояну кезінде туннельді Wi-Fi әлі қайта қосылып жатқанда сұрауы мүмкін, бұл кез келген тіркелген ұйқыны болжамға айналдырады. Қолжетімді мекенжайды күтіңіз, содан кейін профильді көтеріңіз және күтуді шектеңіз, осылайша ілмек ояну жолын шексіз ашық ұстай алмайды. Сандық индекстен гөрі профиль атауын таңдаңыз, ал дұрыс профиль желіге қарай өзгерсе, сау туннель таңдауын алдын ала файлға жазып қойсын.
Қайта іске қосу дауылдарынан да сақтаныңыз, әрекеттерді санап және тоқтап. Әр сәтсіз тексеруге жауап беретін күзетші бір іркілісті циклге айналдырады.
Жүйені бір рет кідіртіңіз, содан кейін журналдан ілмектің өз шығысын оқыңыз. Бұл тәртіпті дәлелдейтін жалғыз тест.