Dua penyiapan Windows terlihat sama di Pengaturan dan sama sekali tidak berperilaku serupa. Yang satu adalah profil VPN hasil salinan dengan pemicu aplikasi, sehingga menjalankan satu berkas eksekutabel menaikkan terowongan. Yang lain adalah profil split tunneling yang daftar rutenya kebetulan mencakup apa yang dibicarakan aplikasi itu. Yang pertama menjawab kapan terowongan ada. Yang kedua menjawab paket mana yang masuk, dan hanya yang kedua membiarkan sisa mesin di tautan fisik sementara aplikasi tetap terhubung.

Pemicu adalah aturan siklus hidup, bukan aturan perutean

Add-VpnConnectionTriggerApplication mengikat jalur eksekutabel ke nama profil. Saat proses itu mulai, Pengelola Koneksi Akses Jarak Jauh memanggil profil, dan saat kondisi pemicu berakhir, koneksi bisa terputus. Tidak ada yang memeriksa soket dalam pertukaran itu. Cmdlet membutuhkan shell yang ditingkatkan, jalur lengkap ke biner, dan -Force saat Anda mengganti entri yang sudah ada. Konfirmasikan bahwa asosiasi bertahan dengan Get-VpnConnectionTrigger alih-alih memercayai prompt; referensi Add-VpnConnectionTriggerApplication mendaftar parameter dan contohnya.

Dua batas menjelaskan sebagian besar laporan “pemicu tidak melakukan apa-apa”. Pemicu dibangun di sekitar profil untuk semua pengguna, jadi cakupan profil adalah hal pertama yang harus diselesaikan, dan jalur aplikasi harus cocok dengan biner yang benar-benar berjalan, bukan pintasan atau peluncur yang memunculkan proses kedua. Batas lainnya disengaja: pada jaringan yang diklasifikasikan Windows sebagai tepercaya, pemicu tetap diam, karena profil dimaksudkan untuk aktif di luar kantor.

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 terowongan

Dengan split tunneling mati, Windows memasang rute default berbasis kelas dengan metrik rendah pada antarmuka VPN. Setiap soket mengikutinya, termasuk peramban dan layanan pembaruan, sehingga pemicu dalam konfigurasi itu memindahkan seluruh mesin selama profil terhubung. Pemicu tetap hanya aturan siklus hidup; radius dampaknya datang dari rute.

Dengan split tunneling hidup, profil hanya membawa prefiks yang didorong gateway atau yang Anda tambahkan ke antarmuka VPN. Semua yang lain tetap memakai rute default fisik. Itulah susunan yang biasanya dimaksud orang dengan “satu aplikasi lewat jalan keluar terpisah”, dan itu keputusan perutean dari awal sampai 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 yang dirutekan berhenti mengisolasi aplikasi Anda

Kegagalan umum adalah tujuan yang tidak pernah muncul di daftar rute terowongan. Aplikasi yang masuk ke satu alamat lalu streaming dari CDN, atau menyelesaikan selusin titik akhir yang berputar, akan menaruh sebagian koneksi di antarmuka VPN dan sisanya di Wi-Fi. IPv6 adalah tabel terpisah, jadi profil yang hanya mendorong prefiks IPv4 bisa terlihat benar sementara lalu lintas IPv6 aplikasi tetap lokal.

Dua efek yang lebih kecil sama pentingnya. Kecocokan prefiks terpanjang menang, jadi rute on-link yang lebih spesifik, /32 yang didorong untuk hos manajemen, atau subnet adaptor kedua bisa mengalahkan terowongan tepat untuk alamat yang Anda pedulikan. Resolusi juga terjadi sebelum perutean: kecuali server DNS profil atau aturan NRPT mencakup nama itu, aplikasi bisa menyelesaikan lewat adaptor fisik lalu memanggil alamat yang tidak pernah berada di dalam prefiks yang diterowangkan.

Tiga bentuk, dan apa yang dibeli masing-masing

Tabel adalah bagian yang akan saya tempel di dinding, karena keputusannya tentang radius dampak, bukan fitur. Jika tujuan aplikasi adalah prefiks stabil yang bisa Anda daftar, split yang dirutekan memberi isolasi dengan jejak terkecil. Jika tidak, profil rute default di balik VM atau perangkat kedua menjaga pemisahan tetap jujur dengan biaya memindahkan lebih dari 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

Yang tidak diberikan satu pun dari ini adalah pengikatan tingkat soket di hos. Klien VPN Windows klasik tidak punya aturan yang mengatakan proses ini harus memakai adaptor itu; pemicu dan filter rute hidup di lapisan berbeda, dan lapisan yang memilih antarmuka adalah tabel rute. Jika panduan menjanjikan penegakan per aplikasi hanya dari profil hasil salinan, tanyakan rute atau filter mana yang melakukan pekerjaannya.

Verifikasi pasangan itu dalam satu lintasan

Uji siklus hidup dan perutean secara terpisah, dalam urutan itu. Tutup aplikasi, pastikan profil melaporkan Disconnected, lalu mulai aplikasi dan periksa apakah statusnya berubah. Baru setelah terowongan menyala Anda harus bertanya ke mana tujuan tertentu pergi, dan Anda harus memakai alamat yang benar-benar dipanggil aplikasi, bukan tebakan.

$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 menyebutkan antarmuka dan lompatan berikutnya yang akan membawa tujuan itu. Alias fisik di sana berarti terowongan menyala dan tidak relevan untuk aliran itu: periksa prefiks yang didorong, lalu rute yang lebih spesifik, lalu IPv6. Jika status tidak berubah sama sekali, pemicu tidak menyala, dan jalur eksekutabel, cakupan profil, serta log operasional klien VPN adalah tiga tempat untuk melihat.

Bersihkan dengan rapi agar tes berikutnya jujur

Hapus dalam urutan kebalikan dari yang Anda bangun: pemicu aplikasi dulu, lalu profil. Menghapus profil saat pemicu masih ada meninggalkan asosiasi menggantung yang membuat percobaan berikutnya membingungkan, dan Remove-VpnConnection -Force tidak selalu membersihkan entri buku telepon yang dibuat di luar cmdlet.

Entri per pengguna berada di rasphone.pbk milik pengguna di bawah profil Roaming; entri untuk semua pengguna berada di bawah ProgramData. Periksa penyimpanan yang cocok dengan cakupan profil, sambungkan kembali profil yang Anda simpan, dan pastikan rute serta DNS-nya masih berperilaku, agar tes berikutnya mengukur perubahan yang Anda buat, bukan status sisa.

  • Terowongan dimulai saat proses dimulai, bukan saat login.
  • Hanya prefiks yang dimaksud yang muncul di antarmuka VPN.
  • Alamat jarak jauh asli aplikasi diselesaikan ke alias VPN.
  • Tidak ada pemicu menggantung yang tersisa setelah profil dihapus.

Artikel terkait