Tunnel berpecah anda mengecualikan pelancar, bukan permainan
Pelancar memulakan fail boleh laku lain untuk perlawanan, dan proses itu mempunyai soketnya sendiri. Cari proses sebenar, padankan pengecam yang betul, kemudian uji.
Anda menambah pelancar ke senarai pengecualian, muat turun melonjak daripada perlahan kepada cepat, dan perlawanan masih mendarat di pelayan jauh. Tiada apa yang rosak. Pelancar dan permainan ialah dua proses dengan dua set soket, dan mengecualikan satu tidak berkata apa-apa tentang yang lain. Muat turun menjadi lebih cepat kerana muat turun ialah trafik pelancar; perlawanan ialah sambungan orang lain, dibuka oleh fail boleh laku yang tidak pernah dilihat oleh peraturan anda.
Satu pemasang, banyak proses
Perisian permainan moden ialah buruj kecil. Terdapat klien yang mendaftarkan anda masuk, pengemas kini yang menarik kandungan, pelancar yang memulakan permainan, dan fail boleh laku permainan yang mungkin mencipta proses kedua sendiri untuk anti-curang atau untuk lapisan padanan perlawanan. Setiap satu boleh memegang sambungannya sendiri ke destinasinya sendiri.
Peraturan pengecualian biasanya menamakan salah satunya. Yang mana satu dinamakan bergantung sepenuhnya pada pengecam yang disokong oleh klien VPN, dan itulah bahagian yang jarang diperiksa oleh pengguna. Sesetengah klien memadankan laluan fail boleh laku, sesetengah memadankan pengecam pakej atau bundle, dan sesetengah memadankan nama proses yang boleh dikongsi oleh dua binari tidak berkaitan. Baca peraturan sebelum membaca senarai proses, kerana peraturan mengehadkan apa yang boleh anda nyatakan.
Jadi simptomnya bukan “tunnel berpecah rosak”. Ia ialah “peraturan meliputi proses yang bukan proses yang membawa trafik yang saya pedulikan”, yang merupakan kenyataan jauh lebih sempit dan jauh lebih boleh dibaiki. Setelah anda berkata begitu, langkah seterusnya berhenti menjadi tekaan.
Cari proses yang memiliki sambungan perlawanan
Mulakan permainan, masuk ke perlawanan, dan lihat siapa yang memiliki soket dan bukannya apa yang ada di skrin. Pada Windows, senarai proses serta pertanyaan soket bagi setiap proses menjawabnya dalam dua arahan:
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
Arahan kedua mencetak ID proses, bukan nama, jadi gabungkan kedua-dua output mengikut ID. Baris yang anda cari ialah baris yang alamat jauhnya milik perkhidmatan permainan, dan proses yang memilikinya ialah fail boleh laku yang perlu dinamakan oleh peraturan anda.
Pada Linux soalan yang sama memerlukan satu arahan bagi setiap jenis soket, dan kedua-duanya wajar diperiksa, kerana sambungan perlawanan mungkin UDP manakala segala-galanya TCP:
ss -tunp state established | grep -i game
ss -tunp | awk 'NR==1 || /udp/'
Jika permainan berjalan dalam kontena atau lapisan keserasian, proses yang anda temui mungkin shim dan bukan binari yang anda pasang. Dalam kes itu pengecam yang penting ialah yang dilihat oleh klien, yang mungkin laluan shim, dan berapa banyak pun penyuntingan fail asal tidak akan mempengaruhinya.
Padankan pengecam yang disokong oleh klien anda
Baca dokumentasi klien untuk peraturan pengecualian sebelum menambah apa-apa. Ketiga-tiga model biasa berkelakuan berbeza, dan salah satunya ialah perangkap.
| 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 |
Peraturan laluan ialah yang paling tepat dan paling rapuh. Kemas kini pelancar yang memindahkan fail boleh laku membiarkan peraturan menunjuk ke fail yang tidak lagi berjalan, dan simptom kembali tanpa apa-apa yang jelas berubah. Peraturan pakej bertahan daripada itu, dan ia juga boleh meliputi proses pembantu yang tidak pernah anda fikirkan secara senyap, yang sama ada memudahkan atau membimbangkan bergantung pada pembantu itu.
Apa pun yang disokong klien, jangan tambah entri untuk setiap fail boleh laku yang anda temui. Senarai yang dihimpun melalui cuba dan salah sehingga satu sesi berjaya tidak boleh disemak, dan ia akan mengumpul pengecualian secara senyap untuk perisian tidak berkaitan. Namakan proses yang anda temui, dan catat untuk apa ia.
Uji pada perlawanan, bukan pada muat turun
Kelajuan muat turun pelancar ialah ujian paling teruk yang mungkin, kerana ia melatih tepat proses yang sudah dikecualikan. Gunakan perkara yang gagal, dan periksa laluan dan bukannya paparan prestasi permainan itu sendiri:
ip route get 203.0.113.55
Get-NetTCPConnection -State Established | Where-Object RemotePort -eq 27015
Arahan pertama memerlukan alamat yang diselesaikan oleh pelayan perlawanan, yang boleh diberikan oleh log sambungan permainan atau klien anda. Jika laluan menamakan antara muka fizikal, peraturan berfungsi. Yang kedua menunjukkan sama ada sesi wujud, yang memisahkan “dikecualikan tetapi pelayan mati” daripada “tidak dikecualikan”.
Kekalkan wilayah dan rangkaian akses tetap semasa anda menguji. Perlawanan yang mendarat di pusat data berbeza setiap percubaan menghasilkan alamat berbeza, dan anda akan akhirnya mengejar sasaran bergerak dan bukannya mengesahkan peraturan. Dua larian dengan alamat yang sama lebih bernilai daripada sepuluh dengan alamat berbeza.
Semak semula selepas kemas kini seterusnya
Mana-mana peraturan berasaskan laluan mempunyai jangka hayat yang diukur dalam kitaran tampalan. Apabila permainan berhenti mematuhi pengecualian sebulan kemudian, perkara pertama yang perlu diperiksa ialah sama ada fail boleh laku berpindah, dan yang kedua ialah sama ada proses pembantu baharu muncul di sebelahnya.
Model pengecualian aplikasi yang didokumenkan oleh satu klien ialah rujukan munasabah untuk cara peraturan ini diterangkan, walaupun butirannya berbeza antara produk. Baca milik anda, rekod pengecam yang anda gunakan, dan catat tarikh. Rekod itulah yang menjadikan misteri kepada pembaikan lima minit pada masa hadapan apabila pelancar menghantar kemas kini.
Jika klien benar-benar tidak dapat menyatakan sempadan yang anda perlukan, dasar lebih luas yang diluluskan lebih baik daripada timbunan pengecualian tidak didokumenkan. Luas dan difahami mengalahkan sempit dan salah, terutamanya apabila versi sempit itulah yang semua orang percaya sedang berkuat kuasa.