Bo'lingan tunnellingiz o'yinni emas, ishga tushirgichni istisno qiladi
Ishga tushirgich o'yin uchun boshqa bajariladigan faylni ishga tushiradi va bu jarayonning o'z soketlari bor. Haqiqiy jarayonni toping, to'g'ri identifikatorni moslang, so'ngra sinab ko'ring.
Ishga tushirgichni istisnolar ro'yxatiga qo'shasiz, yuklab olish sekinlikdan tezlikka sakraydi, va o'yin baribir uzoq serverga tushadi. Hech narsa buzilmagan. Ishga tushirgich va o'yin ikki soket to'plamiga ega ikki jarayon, va birini istisno qilish ikkinchisi haqida hech narsa demaydi. Yuklab olish tezlashdi chunki yuklab olish ishga tushirgichning trafigi edi; o'yin boshqasining ulanishi, sizning qoidangiz hech qachon ko'rmagan bajariladigan fayl tomonidan ochilgan.
Bitta o'rnatuvchi, ko'p jarayon
Zamonaviy o'yin dasturi kichik yulduzlar turkumidir. Sizni tizimga kirituvchi mijoz, tarkibni tortuvchi yangilagich, o'yinni boshlovchi ishga tushirgich, va anti-cheat yoki o'yin moslashtirish qatlami uchun o'zi ikkinchi jarayon yaratishi mumkin bo'lgan o'yin bajariladigan fayli bor. Ularning har biri o'z manzillariga o'z ulanishlarini saqlashi mumkin.
Istisno qoidasi odatda ulardan birini nomlaydi. Qaysinisini nomlashi VPN mijozi qo'llab-quvvatlaydigan identifikatorga butunlay bog'liq, va bu foydalanuvchilar kamdan-kam tekshiradigan qism. Ba'zi mijozlar bajariladigan fayl yo'lini, ba'zilari paket yoki bundle identifikatorini, yana ba'zilari ikkita aloqasiz binar bo'lishishi mumkin bo'lgan jarayon nomini moslashtiradi. Jarayonlar ro'yxatidan oldin qoidani o'qing, chunki qoida hatto nimani ifodalashingiz mumkinligini ham cheklaydi.
Shuning uchun alomat “bo'lingan tunnel buzilgan” emas. U “qoida men uchun muhim trafikni olib yuruvchi jarayon bo'lmagan jarayonni qamrab oladi”, bu ancha tor va ancha oson tuzatiladigan bayonot. Buni shunday desangiz, keyingi qadam taxmin bo'lishdan to'xtaydi.
O'yin ulanishiga ega jarayonni toping
O'yinni boshlang, o'yinga kiring va ekranda nima borligidan ko'ra soketlar kimga tegishli ekanini ko'ring. Windows'da jarayonlar ro'yxati va har bir jarayon uchun soket so'rovi bunga ikki buyruq bilan javob beradi:
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
Ikkinchi buyruq nom emas, jarayon ID sini chiqaradi, shuning uchun ikkala natijani ID bo'yicha birlashtiring. Siz qidirayotgan qator uzoq manzili o'yin xizmatiga tegishli qator, va uni egallagan jarayon sizning qoidangiz nomlashi kerak bo'lgan bajariladigan fayl.
Linux'da xuddi shu savol har bir soket turi uchun bitta buyruq talab qiladi, va ikkalasini tekshirishga arziydi, chunki o'yin ulanishi UDP bo'lishi mumkin, qolgan hamma narsa TCP bo'lganda:
ss -tunp state established | grep -i game
ss -tunp | awk 'NR==1 || /udp/'
Agar o'yin konteyner yoki moslik qatlamida ishlasa, topgan jarayoningiz siz o'rnatgan binar emas, shim bo'lishi mumkin. Bunday holda muhim identifikator mijoz ko'radigan narsa, bu shim yo'li bo'lishi mumkin, va asl faylni qancha tahrirlasangiz ham unga ta'sir qilmaydi.
Mijozingiz qo'llab-quvvatlaydigan identifikatorni moslashtiring
Biror narsa qo'shishdan oldin istisno qoidasi bo'yicha mijoz hujjatlarini o'qing. Uchta odatiy model turlicha harakat qiladi, va ulardan biri tuzoqdir.
| 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 |
Yo'l qoidalari eng aniq va eng mo'rt. Bajariladigan faylni ko'chiradigan ishga tushirgich yangilanishi qoidani endi ishlamaydigan faylga ko'rsatib qoldiradi, va alomat hech narsa ko'rinmasdan o'zgarmaganda qaytadi. Paket qoidalari bundan omon qoladi, va ular siz hech qachon o'ylamagan yordamchi jarayonlarni ham jimgina qamrab olishi mumkin, bu yordamchiga qarab qulay yoki xavotirli.
Mijoz nima qo'llab-quvvatlasa ham, topgan har bir bajariladigan fayl uchun yozuv qo'shmang. Bitta sessiya ishlagunga qadar sinov va xato bilan tuzilgan ro'yxatni ko'rib chiqish mumkin emas, va u aloqasiz dasturiy ta'minot uchun istisnolarni jimgina to'playdi. Topgan jarayonni nomlang va u nima uchun ekanini yozib qo'ying.
O'yinda sinab ko'ring, yuklab olishda emas
Ishga tushirgichning yuklab olish tezligi mumkin bo'lgan eng yomon sinov, chunki u allaqachon istisno qilingan jarayonni aynan ishga soladi. Muvaffaqiyatsiz bo'lgan narsadan foydalaning, va o'yinning o'z ish faoliyati displeyi o'rniga yo'lni tekshiring:
ip route get 203.0.113.55
Get-NetTCPConnection -State Established | Where-Object RemotePort -eq 27015
Birinchi buyruq o'yin serveri hal qilgan manzilni talab qiladi, buni o'yinning ulanish jurnali yoki mijozingiz berishi mumkin. Agar yo'l jismoniy interfeysni nomlasa, qoida ishlayapti. Ikkinchisi sessiya umuman bor-yo'qligini ko'rsatadi, bu “istisno qilingan, lekin server o'chirilgan” va “istisno qilinmagan” holatlarini ajratadi.
Sinov paytida hudud va kirish tarmog'ini qat'iy saqlang. Har bir urinishda boshqa ma'lumot markaziga tushadigan o'yin turli manzillar hosil qiladi, va siz qoidani tekshirish o'rniga harakatlanuvchi nishonni quvib yurasiz. Bir xil manzil bilan ikki yugurish turli manzillar bilan o'ntadan qimmatroq.
Keyingi yangilanishdan keyin yana tekshiring
Yo'lga asoslangan har qanday qoidaning yamoq tsikllarida o'lchanadigan amal qilish muddati bor. O'yin bir oydan keyin istisnoga rioya qilishni to'xtatganda, birinchi tekshiradigan narsa bajariladigan fayl ko'chganmi, ikkinchisi uning yonida yangi yordamchi jarayon paydo bo'lganmi.
Bitta mijoz hujjatlashtirgan ilovalarni istisno qilish modeli bu qoidalar qanday tavsiflanishiga oqilona havola, garchi tafsilotlar mahsulotlar orasida farq qilsa. O'zingiznikini o'qing, ishlatgan identifikatorni yozib oling, va sanani belgilang. Aynan shu yozuv keyingi safar ishga tushirgich yangilanish chiqarganda jumboqni besh daqiqalik tuzatishga aylantiradi.
Agar mijoz kerakli chegarani umuman ifodalay olmasa, tasdiqlangan kengroq siyosat hujjatlashtirilmagan istisnolar uyumidan yaxshiroq. Keng va tushunilgan tor va noto'g'ridan ustun, ayniqsa tor versiya hamma kuchda deb ishonadigan narsa bo'lsa.