Пропуштање апликације кроз тунел не преноси њено рутирање на све што та апликација покрене, иако интерфејс сугерише супротно. Веза предаје захтев другој апликацији, та апликација отвара сопствени сокет, а платформа примењује правила на нови процес, а не на онај који је приказао текст. Управо тај други процес види политика тунела, и он није онај који сте конфигурисали.

Укључена апликација зато може да отвори прегледач који стоји изван тунела. Искључени прегледач може да врати посао апликацији која стоји унутар њега. Оба смера тог изненађења су уобичајено понашање.

Део тока рада који нико није конфигурисао

Политика по апликацији пише се према идентитету извршне датотеке или пакета, а свака веза се оцењује у тренутку када настане. Прегледач, прегледач докумената, медијски плејер и системски лист за дељење носе сваки свој идентитет, и сваки добија своју пресуду. Дубока веза носи податке, а не политику.

Зато се запажање чини произвољним: исти клик се рутира на два начина, зависно од тога који руковалац одговори. Поштански клијент у тунелу отвара везу у прегледачу који живи изван тунела, и страница се учитава са ваше кућне адресе. Прегледач изван тунела отвара документ у прегледачу који живи унутар њега, и датотека стиже кроз излаз. Ни један од та два резултата није грешка у клијенту.

Руковалац који већ ради погоршава ствар. Ако је прегледач већ отворен, веза постаје порука постојећем процесу, а тај процес задржава рутирање које је имао при покретању. Затварање и поновно отварање руковаоца мења исход, и зато се проблем никада не репродукује на захтев.

PlatformPolicy objectWhat it is evaluated against
AndroidPer-app VPN allowlistPackage name of the process opening the socket
WindowsApplication traffic filtersApplication path in the filter rule
LinuxUID or cgroup routing rulesOwner of the socket, which can be a different program

Који је процес стварно успоставио везу

Мерите страну која прима уместо да о њој расправљате. Држите тунел укључен, кликните безазлену везу и погледајте сокете које држи нови програм.

ss -tnp state established '( dport = :443 )'
Get-NetTCPConnection -State Established | Select-Object RemoteAddress,OwningProcess

Прва наредба именује процес иза сваког успостављеног сокета на Linux-у, а друга чини исто на Windows-у решавањем идентификатора процеса који га поседује. Упоредите име процеса са именима у својој политици. Ако је име прегледач и прегледач је искључен, клик је напустио тунел по дизајну, а не због грешке. Упаривање правила политике са живим сокетом је читав метод.

Поновите проверу са руковаоцем који већ ради, а затим са затвореним. Два резултата могу да се разликују, и та разлика објашњава већину повремених извештаја о везама које беже из тунела.

Покривеност је својство тока рада

Ако задатак мора да остане у тунелу од почетка до краја, свака компонента до које може да стигне мора бити унутар политике: покретач, руковалац, прегледач и сваки посредник који платформа убаци између њих. Шира покривеност је често искрен одговор, и јефтинија је од ревизије сваке мете дељења.

Искључити системског посредника да бисте поправили једну апликацију честа је грешка. Посредници су дељени, па искључење прати сваку другу апликацију која користи исти пут, обично без тога да ико примети док извештај не стигне недељама касније. Прочитајте шта још зависи од компоненте пре него што је искључите.

Држите идентитет одвојено од рутирања. Веза може да носи токен сесије или идентификатор налога, без обзира на то који излаз прима захтев. Исправно рутиран клик ипак може одредишту да каже тачно ко га је следио.

Документујте ток рада, а не прво поље за потврду. Када задатак обухвата четири програма, дијаграм са четири програма је онај који предвиђа камо саобраћај иде, а подешавање за једну апликацију је само један његов ред.

Повезани чланци