Pencetus VPN setiap aplikasi Windows berbanding split tunneling: apa yang mengasingkan
Profil VPN Windows yang dicetuskan aplikasi hanya memulakan terowong. Split tunneling berhalakan menentukan apa yang masuk ke dalamnya, dan kedua-duanya gagal secara berbeza untuk satu aplikasi.
Dua persediaan Windows kelihatan sama dalam Tetapan dan sama sekali tidak berkelakuan serupa. Satu ialah profil VPN yang disalin dengan pencetus aplikasi, jadi memulakan satu fail boleh laku menaikkan terowong. Yang lain ialah profil split tunneling yang senarai laluannya kebetulan meliputi apa yang dibincangkan oleh aplikasi itu. Yang pertama menjawab bila terowong wujud. Yang kedua menjawab paket mana yang masuk, dan hanya yang kedua membiarkan seluruh mesin pada pautan fizikal sementara aplikasi kekal bersambung.
Pencetus ialah peraturan kitaran hayat, bukan peraturan penghalakan
Add-VpnConnectionTriggerApplication mengikat laluan boleh laku kepada nama profil. Apabila proses itu bermula, Pengurus Sambungan Akses Jauh mendail profil, dan apabila syarat pencetus tamat, sambungan boleh terputus. Tiada apa dalam pertukaran itu memeriksa soket. Cmdlet memerlukan shell yang dinaikkan, laluan penuh ke binari, dan -Force apabila anda menggantikan entri sedia ada. Sahkan bahawa persatuan itu kekal dengan Get-VpnConnectionTrigger daripada mempercayai gesaan; rujukan Add-VpnConnectionTriggerApplication menyenaraikan parameter dan contoh.
Dua had menjelaskan kebanyakan laporan “pencetus tidak melakukan apa-apa”. Pencetus dibina di sekitar profil untuk semua pengguna, jadi skop profil ialah perkara pertama yang perlu diselesaikan, dan laluan aplikasi mesti sepadan dengan binari yang benar-benar berjalan, bukan pintasan atau pelancar yang menimbulkan proses kedua. Had yang lain memang disengajakan: pada rangkaian yang dikelaskan Windows sebagai dipercayai, pencetus kekal terbiar, kerana profil itu dimaksudkan untuk beroperasi di luar pejabat.
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 menentukan apa yang melintasi terowong
Dengan split tunneling dimatikan, Windows memasang laluan lalai berasaskan kelas dengan metrik rendah pada antara muka VPN. Setiap soket mengikutinya, termasuk pelayar dan perkhidmatan kemas kini, jadi pencetus dalam konfigurasi itu menggerakkan seluruh mesin selagi profil bersambung. Pencetus masih hanya peraturan kitaran hayat; jejari kesan datang daripada laluan.
Dengan split tunneling dihidupkan, profil hanya membawa awalan yang ditolak oleh get laluan atau yang anda tambah pada antara muka VPN. Semua yang lain terus menggunakan laluan lalai fizikal. Itulah susunan yang biasanya dimaksudkan orang dengan “satu aplikasi melalui jalan keluar berasingan”, dan ia keputusan penghalakan dari awal hingga akhir.
Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix
Di mana split berhalakan berhenti mengasingkan aplikasi anda
Kegagalan biasa ialah destinasi yang tidak pernah muncul dalam senarai laluan terowong. Aplikasi yang log masuk ke satu alamat dan kemudian menstrim dari CDN, atau menyelesaikan sedozen titik akhir berputar, akan meletakkan sebahagian sambungan pada antara muka VPN dan selebihnya pada Wi-Fi. IPv6 ialah jadual berasingan, jadi profil yang hanya menolak awalan IPv4 boleh kelihatan betul sementara trafik IPv6 aplikasi kekal setempat.
Dua kesan yang lebih kecil sama pentingnya. Padanan awalan terpanjang menang, jadi laluan on-link yang lebih khusus, /32 yang ditolak untuk hos pengurusan, atau subnet penyesuai kedua boleh mengalahkan terowong tepat untuk alamat yang anda pedulikan. Penyelesaian nama juga berlaku sebelum penghalakan: melainkan pelayan DNS profil atau peraturan NRPT meliputi nama itu, aplikasi boleh menyelesaikan melalui penyesuai fizikal dan kemudian mendail alamat yang tidak pernah berada dalam awalan yang diterowongkan.
Tiga bentuk, dan apa yang dibeli setiap satu
Jadual ialah bahagian yang akan saya tampal di dinding, kerana keputusan itu tentang jejari kesan, bukan ciri. Jika destinasi aplikasi ialah awalan stabil yang boleh anda senaraikan, split berhalakan memberi pengasingan dengan jejak terkecil. Jika tidak, profil laluan lalai di belakang VM atau peranti kedua mengekalkan pemisahan itu jujur pada kos menggerakkan lebih daripada satu proses.
| 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 |
Apa yang tidak diberikan oleh mana-mana ini ialah pengikatan peringkat soket pada hos. Klien VPN Windows klasik tiada peraturan yang mengatakan proses ini mesti menggunakan penyesuai itu; pencetus dan penapis laluan hidup dalam lapisan berbeza, dan lapisan yang memilih antara muka ialah jadual laluan. Jika panduan menjanjikan penguatkuasaan setiap aplikasi hanya daripada profil yang disalin, tanya laluan atau penapis mana yang melakukan kerja itu.
Sahkan pasangan itu dalam satu laluan
Uji kitaran hayat dan penghalakan secara berasingan, dalam urutan itu. Tutup aplikasi, sahkan profil melaporkan Disconnected, kemudian mulakan aplikasi dan periksa bahawa keadaan berubah. Hanya selepas terowong naik anda patut bertanya ke mana destinasi tertentu pergi, dan anda patut menggunakan alamat yang benar-benar didail oleh aplikasi, bukan tekaan.
$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 menamakan antara muka dan lompatan seterusnya yang akan membawa destinasi itu. Alias fizikal di situ bermakna terowong naik dan tidak relevan untuk aliran itu: periksa awalan yang ditolak, kemudian laluan yang lebih khusus, kemudian IPv6. Jika keadaan tidak berubah langsung, pencetus tidak tercetus, dan laluan boleh laku, skop profil serta log operasi klien VPN ialah tiga tempat untuk dilihat.
Bersihkan dengan kemas supaya ujian seterusnya jujur
Alih keluar dalam urutan songsang daripada yang anda bina: pencetus aplikasi dahulu, kemudian profil. Memadam profil sementara pencetus kekal meninggalkan persatuan tergantung yang menjadikan percubaan seterusnya mengelirukan, dan Remove-VpnConnection -Force tidak selalu membersihkan entri buku telefon yang dicipta di luar cmdlet.
Entri setiap pengguna berada dalam rasphone.pbk pengguna di bawah profil Roaming; entri untuk semua pengguna berada di bawah ProgramData. Periksa stor yang sepadan dengan skop profil, sambung semula profil yang anda simpan, dan sahkan laluan serta DNS-nya masih berkelakuan, supaya ujian kemudian mengukur perubahan yang anda buat dan bukan keadaan sisa.
- Terowong bermula semasa proses bermula, bukan semasa log masuk.
- Hanya awalan yang dimaksudkan muncul pada antara muka VPN.
- Alamat jauh sebenar aplikasi diselesaikan kepada alias VPN.
- Tiada pencetus tergantung yang tinggal selepas profil dialih keluar.