Wéi een den VPN-Status ouni Ping op Android, iOS a Windows kontrolléiert
E Ping beweist nëmmen, datt een Host geäntwert huet, net datt den Tunnel leeft. Frot d'Status-APIen vun Android, iOS a Windows a verifizéier duerno d'Route, déi deng App wierklech brauch.
E Ping op 192.0.2.10 seet der nëmmen, datt eng Adress op en ICMP-Echo geäntwert huet, an näischt méi. An engem Netz ouni Tunnel kann en trotzdem geléngen, well d'Adress am lokalen Subnetz ka sinn; mat engem gesonden Tunnel kann en awer feelen, well de Server ICMP verwërft, wärend en HTTPS zerwéiert. D'Kontroll déi de Skript brauch ass eng Ufro vum Plattform-Status plus en Routentest op d'Zil, dat d'App benotzt. Behuel se als zwee getrennt Felder, ni als een eenzegen Booleschen.
Wat eng Echo-Äntwert tatsächlech beweist
ICMP ass en Erreechbarkeetsprotokoll, dee keng Iddi vun Interfaces oder Tunnelen huet. Wann eng Äntwert ukënnt, mellt de Kernel, datt en Host geäntwert huet; en mellt net, wéi eng Route d'Ufro gedroen huet oder wéi eng d'Äntwert. D'Filtere mécht d'Signal nach méi kamoufléiert, well eng Firewall déi Echo-Ufroen blockéiert näischt iwwer d'Porten hannendrun seet. An e Split-Tunnel-Profil kann déi getest Adress bewosst ausschléissen, wärend all anert Zil funktionéiert.
Wat s du wierklech wësse wëlls, ass ob e bestëmmte Service iwwer de Wee deen d'App hëlt benotzbar ass. Wiel den Host an de Port déi d'App usprécht, a verlaang dann eng Äntwert op der Applikatiounsschicht.
Erreechbarkeet an Tunnelsstatus sinn zwee verschidde Fakten, an ee vun hinne kann wouer sinn, wärend deen aneren falsch ass. Se getrennt ze halen seet der wiem de Feeler gehéiert. Se an enger eenzeger Kontroll ze verschmëlzen produzéiert en Ticket, deen keen ëmleede kann.
Frot Android no dem Transport, net no engem Ping
Android äntwert d'Statusfro direkt iwwer de ConnectivityManager. D'Fähigkeete vum aktiven Netz droen eng VPN-Transportfändel, déi gesat gëtt wann den Traffic iwwer en VPN-Interface geleet gëtt. Den Opruff ass lokal, bëlleg an onofhängeg dovun, ob en entfernten Host äntwert.
Dës Java-Versioun gëtt false zréck amplaz eng Ausnam ze werfen, wann et keen aktiven Netz gëtt. Well se den aktiven Netz liest, spigelt se de Profil, deen de Benotzer an den Astellungen gewielt huet.
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkCapabilities caps = cm.getNetworkCapabilities(cm.getActiveNetwork());
boolean tunnel = caps != null && caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN);
Fir Ännerungsnotifikatioune registréier en NetworkCallback amplaz mat engem Timer ze polléieren. Verweechel dat net mam VpnService.prepare, deen nëmmen mellt ob de Benotzer eng Erlaabnes fir e VPN ginn huet, net ob Pakete fléissen. D'Ophuewung kënnt iwwer VpnService.onRevoke, awer e Profil an den Astellungen ze vergiessen produzéiert guer keng Ausstralung.
iOS: Interface-Nimm sinn eng Heuristik, keen Kontrakt
Vill iOS-Schnipselen iwwerpréiwen d'Proxy-Astellungen, fannen den __SCOPED__-Dictionnaire a sichen no Interface-Schlësselen wéi tap, tun, utun2, ppp oder ipsec. Dee Wee ass eng Nummkonventioun, keng dokumentéiert Garantie, dofir kann en OS-Update deen en Interface ëmbenennt en brochéieren. En tendéiert och true ze mellen fir veralt Entréen déi den Tunnel iwwerliewe.
Wann deng App d'Konfiguratioun besëtzt, gëtt dir den NEVPNManager e richtegen Status. En beschreift den Tunnel deen deng App gestart huet; mat engem VPN pro App kënnen aner Appen komplett baussen deem Tunnel stoen.
Lued d'Präferenzen nei, ier s de de Status lies, well de Wäert sech ännert wann den Tunnel op- an ofgeet:
let manager = NEVPNManager.shared()
manager.loadFromPreferences { error in
let up = manager.connection.status == .connected
print(up)
}
Eng Plattform-Statusfändel beweist nach ëmmer net, datt den Traffic de Peer erreecht. Genau déi Lück deckt den Routentest of, an dofir ass een eenzegen Booleschen net genuch fir de Support.
Windows-Profile leeën e richtegt Statusfeld offen
Windows verfollegt VPN-Profile getrennt vun den Adapteren, an de Get-VpnConnection leet en ConnectionStatus fir all Profil offen deen en kennt. Profiler déi iwwer de Windows-Client oder e Provisionéierungspak erstallt goufen erschéngen hei. D'Cmdlet ass keen allgemenge Tunnel-Detekter.
Lies d'Feld fir e genannte Profil, a füüg -AllUserConnection derbäi wann de Profil allen Benotzer gehéiert:
Get-VpnConnection -Name "Fabrikam" | Select-Object Name, ConnectionStatus, ServerAddress
Drëtt-Partei-Cliente bleiwen dacks onsiichtbar fir dëst Cmdlet, och wann hiren Tunnel leeft, dofir eidel Resultat heescht onbekannt, net ofgetrennt. D'Adapterlëschten täuschen och: en Adapter vum Hiersteller ka bestoen bleiwen während en idle ass, an eenzel Adaptere gëtt et nëmmen während enger Sëtzung. Fir e Profil deen Windows besëtzt, mellt de rasdial en Exit-Code op deen s de kënne branchen. All dat beschreift lokal Iwwerzeegung, net d'Erreechbarkeet vum Peer.
Status plus Route: déi zweedeleg Kontroll
E verbonnene Profil seet näischt doriwwer wou d'Pakete fort ginn. Split-Tunneling kann den Tunnel um Liewen halen an d'Zil ausschléissen dat der wichteg ass. Always-on-Profile bleiwen verbonne mat engem doudege Server, an e Kill Switch blockéiert den Traffic bewosst wann den Tunnel fält.
Test béid Schichten: bestäteg datt en VPN-Transport oder Profil aktiv ass, dann bestäteg datt d'Zil sech opléist an iwwer dee Wee äntwert. Op Linux, frot de Kernel wéi en Interface en notze géif:
ip route get 192.0.2.10
resolvectl query intranet.example.test
Wann de Client baussen dengem Kontroll ass, log béid Resultater an loos d'Muster op d'Schicht weisen. Verbonnen plus e feelgeschloenen Routentest deit op Split-Tunneling, DNS oder Politik. Ofgetrennt plus en funktionéierende Routentest heescht datt en anere Wee den Traffic dréit.
En Test deen s de der Rei no ka lafe loossen
Notéier fir d'éischt de Plattform-Status, ier s de iergendeen Netzzoustand änderes. Léis den Hostnumm op a notéier d'Adressfamill, well en AAAA-Record en anere Wee ka huelen wéi en A-Record. Maach de Serviceport op a verlaang eng Applikatiounsächtwert amplaz nëmmen en Handshake. Halt all Observatioun a sengem eegene Logfeld.
Op enger Linux-Maschinn mat dig a curl decken dräi Kommandoen d'Opléisung, d'Route an de Service selwer of. Looss se lafe mat dem Tunnel uewen an nach eng Kéier mat him ënnen:
dig +short intranet.example.test
ip route get 198.51.100.20
curl -sS -o /dev/null -w "%{http_code}" --max-time 8 https://intranet.example.test/health
Véier getrennt Felder schloe een eenzegen Booleschen, well Status, DNS, Route a Politik onofhängeg feelen an an ënnerschiddlechen Teams landen. E Ping am Terminal bleift eng gutt manuell Kontroll. Et ass eng schlecht Definitioun vu Verbindung fir Automatiséierung, wou d'Plattform-API an en Routentest déi richteg Fro beäntweren.