Сіздің бөлінген туннеліңіз ойынды емес, іске қосқышты алып тастайды
Іске қосқыш матч үшін басқа орындалатын файлды іске қосады, және сол процестің өз сокеттері бар. Нақты процесті табыңыз, дұрыс идентификаторды сәйкестендіріңіз, содан кейін тексеріңіз.
Сіз іске қосқышты алып тастау тізіміне қосасыз, жүктеу баяудан жылдамға секіреді, ал матч әлі де алыс серверге түседі. Ештеңе бұзылмаған. Іске қосқыш пен ойын — екі сокет жиынтығы бар екі процесс, және біреуін алып тастау екіншісі туралы ештеңе айтпайды. Жүктеу жылдамдады, өйткені жүктеу іске қосқыштың трафигі еді; матч — басқа біреудің қосылымы, оны сіздің ережеңіз ешқашан көрмеген орындалатын файл ашқан.
Бір орнатушы, көп процесс
Заманауи ойын бағдарламасы — кішкентай шоқжұлдыз. Сізді кіргізетін клиент, мазмұнды тартатын жаңартқыш, ойынды іске қосатын қосқыш және античит немесе матч сәйкестендіру қабаты үшін өзі екінші процесс жасай алатын ойынның орындалатын файлы бар. Олардың әрқайсысы өз мақсаттарына өз қосылымдарын ұстай алады.
Алып тастау ережесі әдетте солардың біреуін атайды. Қайсысын атайтыны VPN клиенті қолдайтын идентификаторға толығымен байланысты, және бұл пайдаланушылар сирек тексеретін бөлік. Кейбір клиенттер орындалатын файл жолын сәйкестендіреді, кейбіреулері бума немесе пакет идентификаторын, ал кейбіреулері екі байланыссыз бинар бөлісе алатын процесс атауын сәйкестендіреді. Процестер тізімін оқымас бұрын ережені оқыңыз, өйткені ереже тіпті нені білдіре алатыныңызды шектейді.
Сондықтан симптом «бөлінген туннель бұзылған» емес. Ол «ереже маған маңызды трафикті тасымалдайтын процесс емес, басқа процесті қамтиды», бұл әлдеқайда тар және әлдеқайда түзетуге болатын тұжырым. Осылай айтқаннан кейін келесі қадам болжам болудан қалады.
Матч қосылымына ие процесті табыңыз
Ойынды іске қосыңыз, матчқа кіріңіз және экранда не бар екенін емес, сокеттер кімге тиесілі екенін қараңыз. Windows-та процесс тізімі және әр процесс бойынша сокет сұрауы бұған екі командамен жауап береді:
Get-Process | Where-Object { $_.ProcessName -match 'launcher|game|client' } | Select-Object Id,ProcessName,Path
Get-NetTCPConnection -State Established | Select-Object OwningProcess,RemoteAddress,RemotePort | Sort-Object OwningProcess
Екінші команда атауды емес, процесс ID-ін шығарады, сондықтан екі шығысты ID бойынша біріктіріңіз. Сіз іздейтін жол — қашықтағы мекенжайы ойын қызметіне тиесілі жол, ал оған ие процесс сіздің ережеңіз атайтын орындалатын файл.
Linux-та сол сұрақ сокет түріне бір команданы қажет етеді, және екеуін де тексеру керек, өйткені матч қосылымы UDP болуы мүмкін, ал қалғаны TCP:
ss -tunp state established | grep -i game
ss -tunp | awk 'NR==1 || /udp/'
Егер ойын контейнерде немесе үйлесімділік қабатында жұмыс істесе, тапқан процессіңіз орнатқан бинар емес, shim болуы мүмкін. Бұл жағдайда маңызды идентификатор — клиент көретін, shim жолы болуы мүмкін, және түпнұсқа файлды қанша өңдесеңіз де оған әсер етпейді.
Клиентіңіз қолдайтын идентификаторды сәйкестендіріңіз
Бірдеңе қоспас бұрын клиенттің алып тастау ережесі туралы құжаттамасын оқыңыз. Үш жалпы модель әртүрлі әрекет етеді, және олардың біреуі тұзақ.
| Identifier | How it behaves | Failure mode |
|---|---|---|
| Executable path | Matches exactly the file at that path | Breaks when an update moves the binary |
| Process name | Matches any binary with that name | Too broad; catches unrelated software |
| Package or bundle id | Matches a signed application group | May include services you did not intend |
Жол ережелері ең дәл және ең нәзік. Орындалатын файлды жылжытатын іске қосқыш жаңартуы ережені енді іске қосылмайтын файлға сілтеп қалдырады, және симптом айқын ештеңе өзгермесе де қайтады. Пакет ережелері бұған төтеп береді, және олар сіз ешқашан ойламаған көмекші процестерді де тыныш қамтуы мүмкін, бұл көмекшіге байланысты ыңғайлы немесе алаңдатарлық.
Клиент не қолдаса да, тапқан әрбір орындалатын файл үшін жазба қоспаңыз. Бір сессия жұмыс істегенге дейін сынақ пен қателік арқылы жиналған тізімді тексеру мүмкін емес, және ол байланыссыз бағдарламалар үшін ерекшеліктерді тыныш жинайды. Тапқан процесті атаңыз және оның не үшін керек болғанын жазыңыз.
Матчта тексеріңіз, жүктеуде емес
Іске қосқыштың жүктеу жылдамдығы — мүмкін болатын ең нашар тест, өйткені ол дәл бұрын алып тасталған процесті іске қосады. Сәтсіз болған нәрсені қолданыңыз және ойынның өз өнімділік дисплейінің орнына жолды тексеріңіз:
ip route get 203.0.113.55
Get-NetTCPConnection -State Established | Where-Object RemotePort -eq 27015
Бірінші командаға матч сервері шешкен мекенжай қажет, оны ойынның қосылым журналы немесе клиентіңіз бере алады. Егер маршрут физикалық интерфейсті атаса, ереже жұмыс істейді. Екіншісі сессияның бар-жоғын көрсетеді, бұл «алып тасталған, бірақ сервер өшірулі» және «алып тасталмаған» күйлерін ажыратады.
Тестілеу кезінде аймақ пен кіру желісін тұрақты ұстаңыз. Әр әрекетте басқа деректер орталығына түсетін матч әртүрлі мекенжайлар тудырады, және ережені тексерудің орнына қозғалмалы нысананы қуасыз. Бір мекенжаймен екі жүргізу әртүрлі мекенжайлармен он жүргізуден құндырақ.
Келесі жаңартудан кейін қайта тексеріңіз
Жолға негізделген кез келген ереженің патч циклдерімен өлшенетін жарамдылық мерзімі бар. Ойын бір айдан кейін алып тастауды құрметтеуді тоқтатқанда, бірінші тексерілетін нәрсе — орындалатын файлдың жылжығаны, екіншісі — оның қасында жаңа көмекші процесс пайда болғаны.
Бір клиент құжаттаған қолданбаларды алып тастау моделі бұл ережелердің қалай сипатталатынына орынды анықтама, дегенмен бөлшектер өнімдер арасында ерекшеленеді. Өзіңіздікін оқыңыз, қолданған идентификаторды жазыңыз және күнді белгілеңіз. Дәл сол жазба келесі жолы іске қосқыш жаңарту шығарғанда жұмбақты бес минуттық түзетуге айналдырады.
Егер клиент қажет шекараны мүлде білдіре алмаса, бекітілген кеңірек саясат құжатталмаған ерекшеліктер үйіндісінен жақсы. Кең және түсінікті тар және қатеден басым, әсіресе тар нұсқа бәрі күшінде деп сенетін нұсқа болса.