Windows VPN-Trigger pro App géint Split-Tunneling: wat isoléiert
En App-ausgeléiste Windows VPN-Profil start nëmmen en Tunnel. En geroutete Split-Tunneling entscheet, wat dra kënnt, a béid falen anescht aus fir eng App.
Zwee Windows-Setupen gesinn an den Astellungen d'selwecht aus a behuelen sech guer net d'selwecht. D'een ass en kopéierte VPN-Profil mat engem Applikatiouns-Trigger, sou datt de Start vun enger ausféierbarer Datei den Tunnel opbauet. D'änner ass e Split-Tunneling-Profil, deem seng Route-Lëscht zoufälleg dat deckt, mat deem déi Applikatioun schwätzt. Déi éischt äntwert, wéini den Tunnel existéiert. Déi zweet äntwert, wéi eng Paketen erakommen, an nëmmen déi zweet léisst de Rescht vun der Maschinn um physikalesche Link, während d'App verbonne bleift.
Den Trigger ass eng Liewenszyklusregel, keng Routingregel
Add-VpnConnectionTriggerApplication bënnt en ausféierbare Pad un en Profilnumm. Wann dee Prozess start, wielt de Remote Access Connection Manager de Profil, an wann d'Triggerbedingung ophält, kann d'Verbindung ofbriechen. Näischt an deem Austausch iwwerpréift Sockets. Den Cmdlet brauch eng erhéicht Shell, de vollstännege Pad zum Binär an -Force wann Dir en existéierenden Agang ersetzt. Bestätegt, datt d'Assoziatioun iwwerlieft huet, mat Get-VpnConnectionTrigger amplaz dem Prompt ze vertrauen; dem Microsoft seng Referenz zu Add-VpnConnectionTriggerApplication lëscht d'Parameteren an d'Beispiller op.
Zwee Limiten erklären déi meescht Meldungen, den Trigger géif näischt maachen. Triggere si ronderëm Profiler fir all Benotzer gebaut, also ass de Profilberäich dat éischt, wat missen decidéiert ginn, an de Applikatiounspad muss mat der Binär iwwereneestëmmen, déi tatsächlech leeft, net mat enger Verknëpplung oder engem Launcher, deen en zweeten Prozess start. Déi aner Limite ass bewosst: an engem Netz, dat Windows als vertrauenswürdeg klasséiert, bleift den Trigger inaktiv, well de Profil dofir geduecht ass, baussent dem Büro ze schaffen.
Add-VpnConnectionTriggerApplication -Name "APP_VPN" -ApplicationID "C:\Program Files\Vendor\app.exe" -Force
Get-VpnConnectionTrigger -Name "APP_VPN" | Format-List *
Get-VpnConnection -Name "APP_VPN" | Format-List Name,ConnectionStatus,SplitTunneling,AllUserConnection
Split-Tunneling entscheet, wat den Tunnel iwwerquiert
Mat ausgeschaltem Split-Tunneling installéiert Windows eng klassenbaséiert Standardroute mat niddereger Metrik op der VPN-Schnittstell. All Socket follegt hir, och de Browser an den Update-Service, sou datt en Trigger an där Konfiguratioun d'ganz Maschinn verréckelt, soulaang de Profil verbonnen ass. Den Trigger bleift just eng Liewenszyklusregel; de Wierkungsradius koum vun der Route.
Mat ageschaltem Split-Tunneling dréit de Profil nëmmen déi Prefixen, déi de Gateway dréckt oder déi Dir op d'VPN-Schnittstell bäifüügt. Alles anescht benotzt weider déi physikalesch Standardroute. Dat ass d'Arrangement, dat d'Leit normalerweis mat „eng App iwwer en getrennten Ausgang“ mengen, an et ass vum Ufank bis zum Schluss eng Routingentscheedung.
Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix
Wou en geroutete Split ophält, Är App ze isoléieren
De gewéinleche Feeler ass en Zil, dat ni op der Routelëscht vum Tunnel erschéngt. Eng App, déi sech géint eng Adress aloggt an dann vun engem CDN streamt, oder en Dutzend rotéierend Endpunkten opléist, setzt e puer Verbindungen op d'VPN-Schnittstell an de Rescht op Wi-Fi. IPv6 ass eng eegen Tabell, sou datt e Profil, deen nëmmen IPv4-Prefixe dréckt, richteg ausgesäit, während den IPv6-Traffic vun der App lokal bleift.
Zwee méi kleng Effekter zielen grad sou vill. Déi längst Prefix-Iwwereneeestëmmung gewënnt, sou datt eng méi spezifesch On-Link-Route, en /32 fir en Administratiounshost oder d'Subnetz vun engem zweeten Adapter den Tunnel genau fir déi Adress schloen kann, déi Dir wichteg fannt. D'Opklärung geschitt och virum Routing: ausser d'DNS-Server vum Profil oder eng NRPT-Regel decken den Numm of, kann d'App iwwer de physikaleschen Adapter opléisen an dann eng Adress uwielen, déi ni an den getunnelte Prefixe war.
Dräi Formen, a wat jiddwereng kaaft
D'Tabell ass den Deel, deen ech un d'Mauer klewe géif, well d'Entscheedung geet iwwer de Wierkungsradius, net iwwer Funktiounen. Wann d'Ziler vun der App stabil Prefixe sinn, déi Dir opschreiwe kënnt, gëtt de geroutete Split Isolatioun mat dem klengste Foussofdréck. Wann net, hält e Standardroute-Profil hannert enger VM oder engem zweeten Apparat d'Trennung éierlech, op Käschte vun méi wéi engem Prozess ze verréckelen.
| Shape | What starts the tunnel | What enters it | Pick it when |
|---|---|---|---|
| Trigger plus routed split | Process start | Only pushed or added prefixes | The app's endpoints are stable prefixes and the host should stay direct |
| Trigger plus default route | Process start | Everything, machine-wide | You need one exit for all traffic and accept the wider scope |
| Separate VM or device | Guest boot or login | Everything inside that guest | The app's destinations rotate, or the host must keep its own public address |
Wat keng vun dëse bitt, ass Bindung op Socket-Niveau um Host. De klassische Windows VPN-Client huet keng Regel, déi seet, dëse Prozess misst dee Adapter benotzen; Triggere a Routefiltere liewen an ënnerschiddleche Schichten, an d'Schicht, déi eng Schnittstell auswielt, ass d'Routetabell. Wann e Guide Per-App-Duerchsetzung nëmmen aus engem kopéierte Profil versprécht, frot, wéi eng Route oder wéi ee Filter d'Aarbecht mécht.
Verifizéiert d'Paar an engem Duerchlaf
Test de Liewenszyklus an d'Routing getrennt, an där Reiefolleg. Maach d'App zou, bestäteg, datt de Profil Disconnected weist, start dann d'App a kontrolléier, datt de Status sech geännert huet. Eréischt wann den Tunnel steet, solls du froen, wou en bestëmmten Zil higeet, an du solls d'Adress benotzen, déi d'App tatsächlech uwielt, amplaz enger Vermutung.
$app = Get-Process app | Select-Object -First 1
Get-VpnConnection -Name "APP_VPN" | Select-Object ConnectionStatus
Get-NetTCPConnection -OwningProcess $app.Id -State Established | Select-Object RemoteAddress,RemotePort
Find-NetRoute -RemoteIPAddress 203.0.113.10
Find-NetRoute nennt d'Schnittstell an den nächsten Hop, deen dat Zil droe géif. En physikaleschen Alias do bedeit, datt den Tunnel steet an fir dee Flux irrelevant ass: kontrolléier d'gedréckt Prefixen, dann déi méi spezifesch Ruten, dann IPv6. Wann de Status sech guer net ännert, huet den Trigger net ausgeléist, an de Pad vun der ausféierbarer Datei, de Profilberäich an de Betribslog vum VPN-Client sinn déi dräi Plazen, wou een nogesinn.
Raum propper of, sou datt den nächsten Test éierlech ass
Ewech am ëmgekehrte Reiefolleg, wéi Dir gebaut hutt: fir d'éischt den Applikatiouns-Trigger, dann de Profil. De Profil läschen, während den Trigger bleift, léisst eng hänkend Assoziatioun, déi den nächste Versuch verwirrend mécht, an Remove-VpnConnection -Force läscht net ëmmer en Telefonsbuchagang, deen ausserhalb vun den Cmdlets ugeluecht gouf.
Agäng pro Benotzer liewen am rasphone.pbk vum Benotzer ënner dem Roaming-Profil; Agäng fir all Benotzer liewen ënner ProgramData. Kontrolléier de Späicher, deen zum Profilberäich passt, verbann de behalenen Profil nach eng Kéier a bestäteg, datt seng Ruten an DNS nach funktionéieren, sou datt en déi nächste Test déi Ännerung misst, déi Dir gemaach hutt, an net de Rescht vum Zoustand.
- Den Tunnel start beim Prozessstart, net beim Login.
- Nëmmen déi beabsichtegt Prefixen erschéngen op der VPN-Schnittstell.
- Déi richteg Fernadress vun der App gëtt op den VPN-Alias opgeléist.
- Keen hänkenden Trigger bleift, nodeems de Profil ewechgeholl gouf.