«VPN күйүп турабы?» деген суроо чындыгында бир сүйлөмдөгү үч суроо. Кодуңузга алардын кайсынысы керек экени — биринчи чечим, жана көпчүлүк ишке ашыруулар ушуну эле өткөрүп жиберет. Бул түзмөктө туннель барбы, бул багытка трафик андан чыгабы, же алыскы тарап сиз күткөн инсандык менен жооп береби. Касиетти тандаңыз, андан кийин аны өлчөгөн сигналды тандаңыз, аягында журналга кайсынысын чын эле өлчөгөнүңүздү жазыңыз.

Үч касиет, үч сигнал

Ар бирин бир сапка кысып, үч суроонун үч башка жообу бар. Төмөнкү таблица — чечимдин өзү, анын кыскача баяны эмес.

PropertySignal that answers itWhat it still leaves open
ExistenceThe platform's own connection state: RAS on Windows, NetworkManager on D-Bus on Linux, scutil on macOSTunnels of a type the platform does not manage, which includes most third-party clients
PathA route lookup for the one destination, or a scoped proxy or interface key that names the tunnelWhether the far end is the peer you trust
IdentityAn authenticated response from the far end, or a source-address policy applied on the serverWhich local interface carried the packets

Акыркы сапты жай окуңуз. Жооп берген жеке хост бир нерсе жооп бергенин далилдейт, жооп туннелден келгенин эмес, жана аркы тарапта ким бар экени жөнүндө эч нерсе айтпайт. Эгер керектүү касиет жол болсо, жолду өлчөңүз.

Болушу: платформанын өз абалы

Windows муну жергиликтүү профилдер үчүн Remote Access Service API аркылуу жооп берет. RasEnumConnections эмне туташканын тизмелейт, RasGetConnectStatus бир жазуунун абалын билдирет, ал эми RasGetLinkStatistics ылдамдыкты, байт эсептегичтерин жана туташуунун курагын кошот. Чектөөлөр — башкы маселе: OpenVPN, WireGuard жана өндүрүүчү кардарлары RAS туташуусун эч качан катташпайт, ошондуктан ушундай типтеги ден соолугу жакшы туннель бош тизме көрсөтөт жана жадатма код аны өчүк деп билдирет.

Linux иш такталары ошол эле касиетти D-Bus боюнча NetworkManager аркылуу көрсөтөт, мында VPN туташуу объектисиндеги PropertiesChanged текшерүүнү окуяга айлантат жана State касиети байланыш туташкан абалга жеткенде билдирет. Кабыктан nmcli connection show --active ошол эле маалыматты окуйт, жана мүчүлүштүктөрдү оңдоодо сизге ушунун өзү керек. macOS бул тизмени System Configuration алкагында сактайт, ал эми scutil анын буйрук сапындагы көрүнүшү. Үчөө тең платформа башкарган туташууну сүрөттөйт жана үчөө тең ал башкарбаган туннель жөнүндө үнсүз калат.

Жол: пакет чын эле кайда барат

Аттарды дал келтирүү — баары биринчи кармаган кыска жол: интерфейстерди тизмелеңиз, сапты tun, tap, ppp же ipsec менен салыштырыңыз жана дал келүүнү далил деп эсептеңиз. Бул эвристика, жана интерфейстер топтому андан бир нерсе өтсө да, өтпөсө да бирдей көрүнүшү мүмкүн. Эски iOS курулуштары ушундай жооп беришчү, ал эми кийинкилери токтошту, анткени көрүнгөн интерфейстер эки абалды ажыратпай калган.

Ал жерде аны системалык прокси сөздүгү алмаштырды. VPN туташып турганда прокси жөндөөлөрүн чакыруу туннелге тиешелүү интерфейстер менен чектелген ачкычтарды кайтарат, ал эми эч нерсе туташпаганда сөздүк бош кайтат. Бул угулганынан алсызыраак ырастоо, анткени ал туннель бар экенине системанын ишенимин жазат, кайсы багыт аны колдонорун эмес.

Android бул капкандын өз версиясына ээ: vpn.connectivity берүүсү айрым курулуштарда манифестте жарыяланган кабыл алгычтарга, башкаларында аткаруу учурунда катталган кабыл алгычтарга жетет. Аны эң жакшы аракет деп караңыз жана анын артында түз текшерүүнү кармаңыз.

Багыт маанилүү болгондо, адаптерлер тизмесинен эмес, маршруттоо таблицасынан сураңыз. Демейдеги шлюз эвристикалары көп тармактуу машиналарда жана өз шлюзун орноткон туннелдерде бузулат.

Инсандык: алыскы тарапты текшериңиз

Ар бир нече секунд сайын алыскы тарапка ICMP жаңырыгын жөнөткөн цикл — бул типтеги эң арзан текшерүү, жана ал пайдалуу багытта ийгиликсиз болот. Аны жеке тармактын ичинде гана бар дарекке багыттаңыз, анткени ачык дарек иштеп турган каалаган өйдө байланыш аркылуу жооп берет жана эч нерсени далилдебейт. ICMP чыпкаланган жерде кызмат портуна кыска TCP туташуусу ошол эле ишти аткарат.

Сервер тараптагы текшерүүнүн так бир сигналы бар: туташуудагы баштапкы дарек. Диапазондордун тизмесин кармоо — тейлөө иши, жана ал туннелди ошол эле блокту колдонгон башка каалаган тармактан ажырата албайт.

Оозу кургак саясат муну менен жашай алат. Инсандык жашай албайт, ошондуктан пакеттери кайдан келгендей көрүнсө, ошого ишенүүнүн ордуна кардарды аутентификациялаңыз.

Категорияны жазыңыз, өкүмдү эмес

Ийгиликсиздик категорияларын журналда өзүнчө кармаңыз: интерфейс такыр жок, интерфейс бар бирок багыт жеткиликсиз, багыт жеткиликтүү бирок аутентификация четке кагылды. Бул үч башка ээ, жана ар бири башка иликтөө ачат.

Аларды бир «VPN өчүк» абалына бириктирүү отчётту оңдой албаган топко жөнөтөт. Категория — пайдалуу чыгарылыш; өкүм — аны туура эмес кылган нерсе.

Тектеш макалалар