Windows-ի երկու կարգավորումներ Պարամետրերում նույն տեսքն ունեն և բոլորովին նույն կերպ չեն վարվում։ Մեկը պատճենված VPN պրոֆիլ է հավելվածի տրիգերով, այնպես որ մեկ կատարվող ֆայլ գործարկելը բարձրացնում է թունելը։ Մյուսը բաժանված թունելի պրոֆիլ է, որի երթուղիների ցանկը պատահաբար ծածկում է այն, ինչի հետ խոսում է այդ հավելվածը։ Առաջինը պատասխանում է, թե երբ է թունելը գոյություն ունենում։ Երկրորդը պատասխանում է, թե որ փաթեթներն են մտնում դրա մեջ, և միայն երկրորդն է թողնում մեքենայի մնացած մասը ֆիզիկական կապուղու վրա, քանի դեռ հավելվածը մնում է միացված։

Տրիգերը կյանքի ցիկլի կանոն է, ոչ թե երթուղավորման կանոն

Add-VpnConnectionTriggerApplication կատարվող ֆայլի ուղին կապում է պրոֆիլի անվան հետ։ Երբ այդ գործընթացը սկսվում է, հեռավոր մուտքի միացումների կառավարիչը հավաքում է պրոֆիլը, և երբ տրիգերի պայմանն ավարտվում է, միացումը կարող է ընկնել։ Այդ փոխանակման մեջ ոչինչ չի ստուգում սոկետները։ Հրամանին անհրաժեշտ է բարձրացված shell, դեպի բինար ֆայլը տանող ամբողջական ուղի և -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 երթևեկությունը մնում է տեղական։

Երկու ավելի փոքր ազդեցություն նույնքան կարևոր են։ Հաղթում է ամենաերկար նախածանցի համընկնումը, ուստի ավելի կոնկրետ on-link երթուղին, կառավարման հոսթի համար հրված /32-ը կամ երկրորդ ադապտերի ենթացանցը կարող են հաղթել թունելին հենց ձեզ հետաքրքրող հասցեի համար։ Անունների լուծումը նույնպես տեղի է ունենում երթուղավորումից առաջ. եթե պրոֆիլի DNS սերվերները կամ NRPT կանոնը չեն ծածկում անունը, հավելվածը կարող է լուծել ֆիզիկական ադապտերով և ապա հավաքել հասցե, որը երբեք չի եղել թունելավորված նախածանցերի ներսում։

Երեք ձև, և ինչ է գնում յուրաքանչյուրը

Աղյուսակը այն մասն է, որը կփակցնեի պատին, որովհետև որոշումը ազդեցության շառավիղի մասին է, ոչ թե հատկանիշների։ Եթե հավելվածի նշանակակետերը կայուն նախածանցեր են, որոնք կարող եք թվարկել, երթուղավորված բաժանումը տալիս է մեկուսացում ամենափոքր հետքով։ Եթե ոչ, VM-ի կամ երկրորդ սարքի հետևում լռելյայն երթուղու պրոֆիլը բաժանումը պահում է ազնիվ՝ մեկից ավելի գործընթաց տեղափոխելու գնով։

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

Այն, ինչ այս տարբերակներից ոչ մեկը չի տալիս, հոսթում սոկետի մակարդակի կապումն է։ 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 կեղծանվան։
  • Պրոֆիլը հեռացնելուց հետո կախված տրիգեր չի մնում։

Առնչվող հոդվածներ