Ibinubukod ng iyong split tunnel ang launcher, hindi ang laro
Isang launcher ang nagsisimula ng ibang executable para sa laban, at ang prosesong iyon ay may sariling mga socket. Hanapin ang tunay na proseso, itugma ang tamang identifier, pagkatapos ay subukan.
Idinaragdag mo ang launcher sa listahan ng pagbubukod, ang download ay tumalon mula mabagal patungong mabilis, at ang laban ay dumarating pa rin sa malayong server. Walang sira. Ang launcher at ang laro ay dalawang prosesong may dalawang set ng socket, at ang pagbubukod sa isa ay walang sinasabi tungkol sa isa. Bumilis ang download dahil ang download ay trapiko ng launcher; ang laban ay koneksyon ng ibang tao, binuksan ng isang executable na hindi pa nakita ng iyong patakaran.
Isang installer, maraming proseso
Ang modernong software ng laro ay isang maliit na konstelasyon. May kliyenteng nagpapa-sign in sa iyo, updater na kumukuha ng nilalaman, launcher na nagsisimula ng laro, at executable ng laro na maaaring maglikha mismo ng pangalawang proseso para sa anti-cheat o para sa matchmaking overlay. Bawat isa sa kanila ay maaaring humawak ng sariling koneksyon sa sariling destinasyon.
Karaniwang pinangalanan ng patakaran ng pagbubukod ang isa sa kanila. Kung alin ang pinangalanan ay ganap na nakasalalay sa identifier na sinusuportahan ng kliyente ng VPN, at iyon ang bahaging bihirang suriin ng mga gumagamit. Ang ilang kliyente ay tumutugma sa landas ng executable, ang iba sa identifier ng package o bundle, at ang iba sa pangalan ng prosesong maaaring ibahagi ng dalawang walang kaugnayang binary. Basahin ang patakaran bago ang listahan ng proseso, dahil nililimitahan ng patakaran maging ang maaari mong ipahayag.
Kaya ang sintomas ay hindi “sira ang split tunnel”. Ito ay “sinasaklaw ng patakaran ang isang prosesong hindi ang nagdadala ng trapikong mahalaga sa akin”, na isang mas makitid at mas madaling ayusing pahayag. Kapag sinabi mo ito nang ganoon, ang susunod na hakbang ay hindi na hula.
Hanapin ang prosesong may-ari ng koneksyon ng laban
Simulan ang laro, pumasok sa isang laban, at tingnan kung sino ang may-ari ng mga socket sa halip na kung ano ang nasa screen. Sa Windows, sinasagot ito ng listahan ng proseso at ng query ng socket sa bawat proseso sa dalawang utos:
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
Nagpi-print ang pangalawang utos ng ID ng proseso, hindi pangalan, kaya pagsamahin ang dalawang output sa pamamagitan ng ID. Ang hilera na hinahanap mo ay ang may malayong address na pag-aari ng serbisyo ng laro, at ang prosesong may-ari nito ay ang executable na dapat pangalanan ng iyong patakaran.
Sa Linux, ang parehong tanong ay nangangailangan ng isang utos sa bawat uri ng socket, at sulit suriin ang pareho, dahil ang koneksyon ng laban ay maaaring UDP habang ang lahat ng iba ay TCP:
ss -tunp state established | grep -i game
ss -tunp | awk 'NR==1 || /udp/'
Kung tumatakbo ang laro sa isang container o compatibility layer, ang prosesong makikita mo ay maaaring shim at hindi ang binary na ininstall mo. Sa ganoong kaso, ang mahalagang identifier ay ang nakikita ng kliyente, na maaaring landas ng shim, at walang pag-edit ng orihinal na file ang makakaapekto nito.
Itugma ang identifier na sinusuportahan ng iyong kliyente
Basahin ang dokumentasyon ng kliyente tungkol sa patakaran ng pagbubukod bago magdagdag ng anuman. Ang tatlong karaniwang modelo ay kumikilos nang iba, at ang isa sa kanila ay bitag.
| 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 |
Ang mga patakaran sa landas ang pinakatumpak at pinakamadaling masira. Ang update ng launcher na naglilipat ng executable ay nag-iiwan sa patakaran na nakaturo sa file na hindi na tumatakbo, at bumabalik ang sintomas nang walang malinaw na pagbabago. Nakakaligtas dito ang mga patakaran sa package, at maaari rin silang tahimik na sumaklaw sa mga helper process na hindi mo inisip, na alinman sa maginhawa o nakakaalarma depende sa helper.
Anuman ang sinusuportahan ng kliyente, huwag magdagdag ng entry para sa bawat executable na makita mo. Ang listahang binuo sa pagsubok at pagkakamali hanggang gumana ang isang session ay hindi masusuri, at tahimik itong mag-iipon ng exception para sa walang kaugnayang software. Pangalanan ang prosesong natagpuan mo, at isulat kung para saan ito.
Subukan sa laban, hindi sa download
Ang bilis ng download ng launcher ang pinakamasamang posibleng pagsubok, dahil ginagamit nito nang eksakto ang prosesong naibukod na. Gamitin ang bagay na nabigo, at suriin ang landas sa halip na ang display ng performance ng laro mismo:
ip route get 203.0.113.55
Get-NetTCPConnection -State Established | Where-Object RemotePort -eq 27015
Kailangan ng unang utos ang address kung saan nag-resolve ang server ng laban, na maaaring ibigay ng connection log ng laro o ng iyong kliyente. Kung pinangalanan ng ruta ang pisikal na interface, gumagana ang patakaran. Ipinapakita ng pangalawa kung may session, na naghihiwalay sa “naibukod ngunit down ang server” mula sa “hindi naibukod”.
Panatilihing fixed ang rehiyon at access network habang nagsubok. Ang laban na dumarating sa ibang data center sa bawat pagtatangka ay gumagawa ng iba't ibang address, at sa huli ay hahabulin mo ang gumagalaw na target sa halip na i-validate ang patakaran. Dalawang run na may parehong address ay mas mahalaga kaysa sampung may iba't ibang address.
Suriing muli pagkatapos ng susunod na update
Ang anumang patakarang nakabatay sa landas ay may shelf life na sinusukat sa mga patch cycle. Kapag tumigil ang laro sa paggalang sa pagbubukod makalipas ang isang buwan, ang unang dapat suriin ay kung lumipat ang executable, at ang pangalawa ay kung may bagong helper process na lumitaw sa tabi nito.
Ang modelo ng pagbubukod ng application na dokumentado ng isang kliyente ay makatwirang sanggunian sa kung paano inilalarawan ang mga patakarang ito, kahit nagkakaiba ang detalye sa mga produkto. Basahin ang sa iyo, itala ang identifier na ginamit, at isulat ang petsa. Ang talaang iyon ang nagpapalit ng misteryo tungo sa limang minutong pag-aayos sa susunod na maglabas ng update ang launcher.
Kung talagang hindi maipahayag ng kliyente ang hangganang kailangan mo, ang aprubadong mas malawak na patakaran ay mas mabuti kaysa bunton ng hindi dokumentadong exception. Ang malawak at naiintindihan ay nananalo sa makitid at mali, lalo na kapag ang makitid na bersyon ang pinaniniwalaan ng lahat na umiiral.