Выключэнні VPN для асобных праграм ламаюцца, калі агульная служба загружае даныя
Акно, якое вы выключылі, не заўсёды з’яўляецца працэсам, што адкрывае злучэнне. Знайдзіце сапраўднага запытчыка, перш чым дадаваць памочнік у правіла VPN для асобнай праграмы.
Вы выключаеце адну праграму з VPN, а патрэбная ёй загрузка ўсё роўна зрываецца, ці, што горш, пачынае працаваць, а нешта не звязанае спыняецца. Бачнае акно не абавязкова з’яўляецца працэсам, які адкрывае кожнае злучэнне: праграма можа перадаць працу памочніку, службе перадачы ў фоне або цалкам іншаму пакету. Таму правіла для асобнай праграмы патрабуе сапраўднай мадэлі ідэнтычнасці платформы, а не знаёмай назвы файла запуску. Праверкі ніжэй пачынаюцца з назірання і вяртаюцца да таго, хто насамрэч зрабіў запыт.
У гэтых заяўках звычайна разам ідуць дзве памылкі: выключаецца не той кампанент, а выключэнне потым ніколі не звужваецца.
Шукайце працэс, а не акно
Узгадайце няўдалую аперацыю і вызначце працэс або пакет, які валодае злучэннем у момант яе выканання. У Windows гэта іншае пытанне, чым тое, якое акно ў фокусе, бо перадачай у фоне можа кіраваць служба, якая працуе пад уласнай ідэнтычнасццю. У Linux і macOS тое ж раздзяленне выглядае як працэсы-памочнікі і сістэмныя дэманы.
Запішыце тры дэталі: ідэнтычнасць выканальнага файла або пакета, пункт прызначэння, з якім ён звязваўся, і момант у працоўным працэсе, калі гэта адбылося. Загрузка, якая зрываецца ў пачатку, часта ёсць запытам метаданых ад іншага кампанента, чым загрузка, якая зрываецца на палове шляху. Аднаго гэтага адрознення звычайна дастаткова, каб выбраць правільную ідэнтычнасць, перш чым чапаць правіла. Калі ідэнтычнасць акажацца службай, а не праграмай, гэты адзіны факт змяняе ўсё правіла, таму ўстанавіце яго першым.
Калі вы не можаце назіраць працэс, бо аперацыя занадта кароткая, паўтарыце яе з большым аб’ёмам даных або павольнейшым пунктам прызначэння. Мэта — адно назіранне, якое можна паўтарыць, а не тэорыя пра тое, які памочнік задзейнічаны.
Разглядайце DNS як асобны шлях
Сістэмнае вырашэнне імён можа зусім не ісці за выключанай праграмай, і таму выключаны браўзер усё роўна можа зрывацца на прыватным імені хаста, хаця яго трафік правільна ідзе па-за тунэлем. Браўзер быў выключаны; распазнавальнік — не.
Праверце, што платформа робіць з DNS, калі дзейнічае правіла для асобнай праграмы, і праверце гэта асобна ад запыту HTTP. Калі распазнавальнік — агульная служба, ён абслугоўвае кожную праграму на прыладзе, таму выключэнне, якое вы разглядаеце, мае значна шырэйшую аўдыторыю, чым тое, што вы правяралі.
Запішыце, які распазнавальнік адказаў і праз які інтэрфейс. Адно гэта назіранне вырашае значную долю справаздач «праграма выключана, але імя не вырашаецца», таму трымайце яго разам з заяўкай.
Не пашырайце агульны памочнік
Агульная служба выконвае працу для некалькіх праграм, таму яе выключэнне дзеля рамонту аднаго працоўнага працэсу змяняе і не звязаны трафік. Background Intelligent Transfer Service у Windows — добры прыклад такой формы: гэта інфраструктура, якой могуць карыстацца многія праграмы, і яе ідэнтычнасць не ёсць ідэнтычнасцю праграмы, якая запытала перадачу.
Праверце мадэль правілаў, якую падтрымлівае кліент, і патрабаванні арганізацыі, перш чым дадаваць гэтае выключэнне. Спытайце, што яшчэ выкарыстоўвае кампанент, і ці можна выказаць правіла, якое вы збіраецеся напісаць, адносна пунктаў прызначэння, а не адносна агульнага працэсу.
Калі патрабаванне ўвогуле немагчыма выказаць як мяжу праграмы, палітыка на аснове пунктаў прызначэння або іншы зацверджаны дызайн могуць быць больш зразумелымі і бяспечнымі, чым расці спіс выключэнняў для памочнікаў.
Тэстуйце ўвесь працоўны працэс, а не няўдалы крок
Пасля падтрыманай змены выканайце запланаваную задачу з новым запытам ад пачатку да канца. Затым выканайце іншы працоўны працэс, які выкарыстоўвае агульны кампанент, бо менавіта там шырокае абыходжанне сябе выяўляе. Выпраўленне, якое ратуе першае і моўчкі ламае другое, не ёсць выпраўленнем. Трымайце абодва вынікі ў заяўцы і назвіце другі працоўны працэс яўна, каб рэцэнзент мог яго паўтарыць.
Трымайце тэст малым і паўтаральным: той жа пункт прызначэння, той жа ўліковы запіс, тыя ж умовы. Калі другі працоўны працэс не дакументаваны, спытайце ў яго ўладальніка, ад чаго ён залежыць, перш чым вырашыць, што змена бяспечная.
Пакіньце прычыну, а не спіс імён
Задакументуйце кампанент, працоўны працэс, якому ён служыць, і прычыну выключэння. Спіс імён памочнікаў без прывязанай мэты становіцца непадтрымлівальным за два цыклы выпуску, і наступны інжынер выдаляе няправільны запіс, калі яго чысціць.
Аднаго радка на выключэнне дастаткова: што ламаецца без яго, хто валодае гэтым працоўным працэсам і калі ён апошні раз правяраўся. Гэтыя тры палі ператвараюць таямнічы спіс у палітыку, якую хтосьці можа абараніць.