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.

ShapeWhat starts the tunnelWhat enters itPick it when
Trigger plus routed splitProcess startOnly pushed or added prefixesThe app's endpoints are stable prefixes and the host should stay direct
Trigger plus default routeProcess startEverything, machine-wideYou need one exit for all traffic and accept the wider scope
Separate VM or deviceGuest boot or loginEverything inside that guestThe 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.

Artikel berkaitan