Windows मा प्रति-एप VPN ट्रिगर बनाम स्प्लिट टनेलिङ: के ले छुट्याउँछ
एपले सुरु गर्ने Windows VPN प्रोफाइलले मात्र एउटा टनेल खोल्छ। रुट गरिएको स्प्लिट टनेलले यसमा के पस्छ निर्धारण गर्छ, र दुवै एउटा एपका लागि फरक तरिकाले असफल हुन्छन्।
Windows का दुई सेटअप सेटिङमा उस्तै देखिन्छन् र पटक्कै उस्तै व्यवहार गर्दैनन्। एउटा प्रतिलिपि गरिएको VPN प्रोफाइल हो जसमा एप्लिकेसन ट्रिगर छ, त्यसैले एउटा कार्यान्वयनयोग्य फाइल सुरु गर्दा टनेल माथि आउँछ। अर्को स्प्लिट-टनेल प्रोफाइल हो जसको रुट सूची संयोगवश त्यो ढाक्छ जसँग त्यो एप बोल्छ। पहिलोले टनेल कहिले अवस्थित छ भन्ने जवाफ दिन्छ। दोस्रोले कुन प्याकेट भित्र पस्छन् भन्ने जवाफ दिन्छ, र दोस्रोले मात्र मेसिनको बाँकी भाग भौतिक लिङ्कमा छाड्छ जब एप जोडिएको रहन्छ।
ट्रिगर जीवनचक्रको नियम हो, रुटिङको नियम होइन
Add-VpnConnectionTriggerApplication एउटा कार्यान्वयनयोग्य मार्गलाई प्रोफाइल नामसँग बाँध्छ। त्यो प्रक्रिया सुरु हुँदा रिमोट एक्सेस कनेक्सन म्यानेजरले प्रोफाइल डायल गर्छ, र ट्रिगरको सर्त सकिँदा कनेक्सन टुट्न सक्छ। त्यो साटासाटमा केहीले पनि सकेट जाँच्दैन। कमाण्डलाई उन्नत शेल, बाइनरीको पूरा मार्ग र -Force जब तपाईं विद्यमान प्रविष्टि बदल्नुहुन्छ तब आवश्यक हुन्छ। जोडाइ टिकिरहेको पुष्टि गर्नुहोस् यसले: Get-VpnConnectionTrigger प्रम्प्टमा भरोसा गर्नुको सट्टा; Microsoft को Add-VpnConnectionTriggerApplication सन्दर्भ प्यारामिटर र उदाहरणहरू सूचीबद्ध गर्छ।
दुई सीमाले “ट्रिगर केही गर्दैन” भन्ने अधिकांश रिपोर्ट व्याख्या गर्छन्। ट्रिगर सबै प्रयोगकर्ताका प्रोफाइलको वरिपरि बनाइन्छ, त्यसैले प्रोफाइलको दायरा पहिलो तय गर्नुपर्ने कुरा हो, र एपको मार्ग वास्तवमै चल्ने बाइनरीसँग मिल्नुपर्छ, सर्टकट वा दोस्रो प्रक्रिया बनाउने लन्चरसँग होइन। अर्को सीमा जानाजान हो: Windows ले विश्वसनीय वर्गीकृत गर्ने नेटवर्कमा ट्रिगर निष्क्रिय रहन्छ, किनकि प्रोफाइल कार्यालय बाहिर काम गर्न बनेको हो।
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
स्प्लिट टनेलले टनेलबाट के जान्छ निर्धारण गर्छ
स्प्लिट टनेल बन्द हुँदा Windows ले VPN इन्टरफेसमा कम मेट्रिकको वर्ग-आधारित डिफल्ट रुट राख्छ। हरेक सकेटले त्यसलाई पछ्याउँछ, ब्राउजर र अपडेट सेवा पनि, त्यसैले त्यो कन्फिगरेसनमा ट्रिगरले प्रोफाइल जोडिएको बेला पूरै मेसिन सार्छ। ट्रिगर अझै पनि जीवनचक्रको नियम मात्र हो; प्रभावको त्रिज्या रुटबाट आयो।
स्प्लिट टनेल खुला हुँदा प्रोफाइलले ती प्रिफिक्स मात्र बोक्छ जो गेटवेले धकेल्छ वा जो तपाईं VPN इन्टरफेसमा थप्नुहुन्छ। बाँकी सबै भौतिक डिफल्ट रुट प्रयोग गर्छ। यही त्यो व्यवस्था हो जसलाई मानिसहरू सामान्यतया “एउटा एप छुट्टै निकासबाट” भन्छन्, र यो सुरुदेखि अन्त्यसम्म रुटिङको निर्णय हो।
Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix
रुट गरिएको विभाजनले तपाईंको एप छुट्याउन कहाँ रोक्छ
सामान्य असफलता त्यो गन्तव्य हो जो टनेलको रुट सूचीमा कहिल्यै देखिँदैन। एउटा ठेगानामा साइन इन गरेर त्यसपछि CDN बाट स्ट्रिम गर्ने एप, वा दर्जनौं घुम्ने इन्डपोइन्ट समाधान गर्ने एपले केही कनेक्सन VPN इन्टरफेसमा र बाँकी Wi-Fi मा राख्छ। IPv6 छुट्टै तालिका हो, त्यसैले IPv4 प्रिफिक्स मात्र धकेल्ने प्रोफाइल सही देखिन सक्छ जब एपको IPv6 ट्राफिक स्थानीय रहन्छ।
दुई साना प्रभाव पनि उत्तिकै महत्त्वपूर्ण छन्। सबैभन्दा लामो प्रिफिक्स मिलान जित्छ, त्यसैले अझ विशिष्ट अन-लिङ्क रुट, व्यवस्थापन होस्टका लागि धकेलिएको /32, वा दोस्रो एडाप्टरको सबनेट तपाईंलाई चासो लाग्ने ठेगानाका लागि टनेललाई हराउन सक्छन्। नाम समाधान पनि रुटिङअघि हुन्छ: प्रोफाइलका DNS सर्भर वा NRPT नियमले नाम नढाकेसम्म एपले भौतिक एडाप्टरबाट समाधान गरेर टनेल गरिएका प्रिफिक्सभित्र कहिल्यै नभएको ठेगाना डायल गर्न सक्छ।
तीन आकार, र प्रत्येकले के दिन्छ
तालिका त्यो भाग हो जुन मैले भित्तामा टाँस्ने थिएँ, किनकि निर्णय प्रभावको त्रिज्याको हो, विशेषताको होइन। एपका गन्तव्यहरू स्थिर प्रिफिक्स भए जुन तपाईं सूचीबद्ध गर्न सक्नुहुन्छ, रुट गरिएको विभाजनले सबैभन्दा सानो निशानसँग छुट्याउने काम गर्छ। नभए, VM वा दोस्रो यन्त्रको पछाडि डिफल्ट-रुट प्रोफाइलले एउटाभन्दा बढी प्रक्रिया सार्ने मूल्यमा छुट्याइ इमानदार राख्छ।
| 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 |
यीमध्ये कुनैले पनि होस्टमा सकेट-तह बाइन्डिङ दिँदैन। Windows को क्लासिक VPN क्लाइन्टमा यो प्रक्रियाले त्यही एडाप्टर प्रयोग गर्नुपर्छ भन्ने नियम छैन; ट्रिगर र रुट फिल्टर फरक तहमा बस्छन्, र इन्टरफेस छान्ने तह रुटिङ तालिका हो। कुनै गाइडले प्रतिलिपि गरिएको प्रोफाइलबाट मात्र प्रति-एप प्रवर्तनको वाचा गर्छ भने, कुन रुट वा कुन फिल्टरले काम गरिरहेको छ सोध्नुहोस्।
एकै पटकमा जोडी प्रमाणित गर्नुहोस्
जीवनचक्र र रुटिङ छुट्टाछुट्टै परीक्षण गर्नुहोस्, यही क्रममा। एप बन्द गर्नुहोस्, प्रोफाइलले Disconnected भन्छ भनी पुष्टि गर्नुहोस्, त्यसपछि एप सुरु गर्नुहोस् र स्थिति बदलियो कि हेर्नुहोस्। टनेल माथि आएपछि मात्र कुनै खास गन्तव्य कहाँ जान्छ सोध्नुहोस्, र अनुमानको सट्टा एपले वास्तवमै डायल गर्ने ठेगाना प्रयोग गर्नुहोस्।
$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 इन्टरफेस र त्यो गन्तव्य बोक्ने अर्को हपको नाम दिन्छ। त्यहाँ भौतिक उपनाम हुनुको अर्थ टनेल माथि छ र त्यो प्रवाहका लागि अप्रासंगिक: धकेलिएका प्रिफिक्स, त्यसपछि अझ विशिष्ट रुट, त्यसपछि IPv6 जाँच्नुहोस्। स्थिति पटक्कै नबदलिए ट्रिगर चलेन, र कार्यान्वयनयोग्यको मार्ग, प्रोफाइलको दायरा र VPN क्लाइन्टको सञ्चालन लग तीन ठाउँ हुन् जहाँ हेर्नुपर्छ।
अर्को परीक्षण इमानदार होस् भनेर सफासुग्घर हटाउनुहोस्
जुन उल्टो क्रममा बनाउनुभयो त्यही क्रममा हटाउनुहोस्: पहिले एप्लिकेसन ट्रिगर, त्यसपछि प्रोफाइल। ट्रिगर रहँदा प्रोफाइल मेटाउँदा एउटा झुन्डिएको जोडाइ रहन्छ जसले अर्को प्रयास अलमल्याउँछ, र Remove-VpnConnection -Force कमाण्डबाहिर बनेको फोनबुक प्रविष्टि सधैं सफा गर्दैन।
प्रति-प्रयोगकर्ता प्रविष्टिहरू प्रयोगकर्ताको rasphone.pbk मा Roaming प्रोफाइलअन्तर्गत रहन्छन्; सबै प्रयोगकर्ताका प्रविष्टि ProgramData अन्तर्गत रहन्छन्। प्रोफाइलको दायरासँग मिल्ने भण्डार जाँच्नुहोस्, राखिएको प्रोफाइल फेरि जोड्नुहोस् र यसका रुट र DNS अझै ठीक व्यवहार गर्छन् भनी पुष्टि गर्नुहोस्, ताकि पछिको परीक्षणले तपाईंले गरेको परिवर्तन नापोस्, बाँकी स्थिति होइन।
- टनेल प्रक्रिया सुरु हुँदा माथि आउँछ, लगइनमा होइन।
- VPN इन्टरफेसमा इच्छित प्रिफिक्स मात्र देखिन्छन्।
- एपको वास्तविक टाढाको ठेगाना VPN उपनाममा समाधान हुन्छ।
- प्रोफाइल हटाएपछि कुनै झुन्डिएको ट्रिगर बाँकी रहँदैन।