Та эхлүүлэгчийг хасах жагсаалтад нэмэхэд таталт удаанаас хурдан болж, тоглолт холын серверт буудаг хэвээр байна. Юу ч эвдэрээгүй. Эхлүүлэгч болон тоглоом нь хоёр сокет багцтай хоёр процесс бөгөөд нэгийг хасах нь нөгөөгийнх нь талаар юу ч хэлэхгүй. Таталт хурдассан нь таталт нь эхлүүлэгчийн урсгал байсан учраас; тоглолт бол өөр хэн нэгний холболт бөгөөд таны дүрэм хэзээ ч хараагүй гүйцэтгэх файл нээсэн.

Нэг суулгагч, олон процесс

Орчин үеийн тоглоомын програм хангамж бол жижиг одны орд. Таныг нэвтрүүлэх клиент, агуулга татах шинэчлэгч, тоглоомыг эхлүүлэх эхлүүлэгч, мөн античит эсвэл тоглолт тааруулах давхаргын төлөө өөрөө хоёр дахь процесс үүсгэж болох тоглоомын гүйцэтгэх файл байна. Тэдний хүн бүр өөрийн чиглэлд өөрийн холболтыг хадгалж болно.

Хасах дүрэм ихэвчлэн тэдний нэгийг нэрлэдэг. Аль нэгийг нэрлэх нь VPN клиентийн дэмждэг танигчаас бүрэн хамаарах бөгөөд энэ нь хэрэглэгчид ховор шалгадаг хэсэг юм. Зарим клиент гүйцэтгэх файлын замыг, зарим нь багц эсвэл bundle танигчийг, зарим нь хоёр холбоогүй бинар хуваалцаж болох процессын нэрийг тааруулдаг. Процессын жагсаалтаас өмнө дүрмийг уншаарай, учир нь дүрэм таны илэрхийлж чадах зүйлийг хүртэл хязгаарладаг.

Тиймээс шинж тэмдэг нь «хуваагдсан туннель эвдэрсэн» биш. Энэ нь «дүрэм нь надад чухал урсгалыг зөөж буй процесс биш, өөр процессыг хамардаг», энэ нь хамаагүй нарийн, хамаагүй засахад хялбар мэдэгдэл юм. Ингэж хэлсний дараа дараагийн алхам таамаглал байхаа болино.

Тоглолтын холболтыг эзэмшдэг процессыг ол

Тоглоомыг эхлүүлж, тоглолтод орж, дэлгэц дээр юу байгааг биш, сокетууд хэнд байгааг хараарай. 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-ийн зам байж болох бөгөөд анхны файлыг хэчнээн зассан ч түүнд нөлөөлөхгүй.

Клиентийн чинь дэмждэг танигчийг тааруул

Ямар нэгэн зүйл нэмэхийн өмнө хасах дүрмийн талаар клиентийн баримт бичгийг уншаарай. Гурван нийтлэг загвар өөр өөрөөр ажилладаг бөгөөд тэдний нэг нь урхи юм.

IdentifierHow it behavesFailure mode
Executable pathMatches exactly the file at that pathBreaks when an update moves the binary
Process nameMatches any binary with that nameToo broad; catches unrelated software
Package or bundle idMatches a signed application groupMay include services you did not intend

Замын дүрмүүд хамгийн нарийн бөгөөд хамгийн эмзэг. Гүйцэтгэх файлыг зөөдөг эхлүүлэгчийн шинэчлэлт дүрмийг цаашид ажиллахгүй файл руу заасан хэвээр үлдээдэг, шинж тэмдэг нь илт юу ч өөрчлөгдөхгүйгээр буцаж ирдэг. Багцын дүрмүүд үүнийг даван туулдаг бөгөөд та хэзээ ч бодож байгаагүй туслах процессуудыг чимээгүйхэн хамарч чаддаг, энэ нь туслах процессоос хамааран тохиромжтой эсвэл түгшээж байдаг.

Клиент юуг дэмжиж байсан ч олсон гүйцэтгэх файл бүрт бичлэг нэмэх хэрэггүй. Нэг сесс ажиллах хүртэл туршилт, алдаагаар цуглуулсан жагсаалтыг хянах боломжгүй бөгөөд холбоогүй програм хангамжид зориулсан үл хамаарах зүйлсийг чимээгүй хуримтлуулна. Олсон процессыг нэрлэж, энэ нь юунд зориулагдсан байсныг бичээрэй.

Тоглолт дээр туршиж үзээрэй, таталт дээр биш

Эхлүүлэгчийн татах хурд нь хамгийн муу боломжит туршилт, учир нь энэ нь аль хэдийн хасагдсан процессыг яг ажиллуулдаг. Бүтэлгүйтсэн зүйлийг ашиглаж, тоглоомын өөрийн гүйцэтгэлийн дэлгэцийн оронд замыг шалгаарай:

ip route get 203.0.113.55
Get-NetTCPConnection -State Established | Where-Object RemotePort -eq 27015

Эхний команд талбайн серверийн шийдсэн хаягийг шаарддаг бөгөөд үүнийг тоглоомын холболтын лог эсвэл таны клиент өгч болно. Хэрэв маршрут физик интерфейсийг нэрлэвэл дүрэм ажиллаж байна. Хоёр дахь нь сесс байгаа эсэхийг харуулж, «хасагдсан боловч сервер унтарсан» ба «хасагдаагүй» хоёрыг ялгадаг.

Туршилтын үеэр бүс болон нэвтрэх сүлжээг тогтмол байлгаарай. Оролдлого бүрт өөр өгөгдлийн төвд буудаг тоглолт өөр өөр хаяг үүсгэдэг бөгөөд дүрмийг баталгаажуулахын оронд хөдөлж буй байг хөөх болно. Нэг хаягтай хоёр гүйлт өөр хаягтай арваас илүү үнэ цэнэтэй.

Дараагийн шинэчлэлтийн дараа дахин шалгаарай

Замын үндсэн дээрх аливаа дүрмийн засварын мөчлөгөөр хэмжигдэх хугацаа байдаг. Тоглоом сарын дараа хасалтыг хүндэтгэхээ болиход хамгийн түрүүнд гүйцэтгэх файл зөөгдсөн эсэхийг, хоёрдугаарт хажууд нь шинэ туслах процесс гарч ирсэн эсэхийг шалгана.

Нэг клиентийн баримтжуулсан програмыг хасах загвар нь эдгээр дүрмийг хэрхэн тайлбарладаг талаар боломжийн лавлагаа боловч дэлгэрэнгүй мэдээлэл бүтээгдэхүүн хооронд ялгаатай. Өөрийнхөө уншиж, ашигласан танигчаа бүртгэж, огноог тэмдэглээрэй. Дараагийн удаа эхлүүлэгч шинэчлэлт гаргахад нууцыг таван минутын засвар болгох нь тэр бүртгэл юм.

Хэрэв клиент шаардлагатай хил хязгаарыг илэрхийлж чадахгүй бол батлагдсан илүү өргөн бодлого нь баримтжуулаагүй үл хамаарах зүйлсийн овоолгоноос дээр. Өргөн бөгөөд ойлгомжтой нь нарийн, буруугаас илүү, ялангуяа нарийн хувилбар нь бүгд хүчинтэй гэж итгэдэг зүйл байх үед.

Холбоотой нийтлэлүүд