Tunnel terpisah Anda mengecualikan peluncur, bukan gimnya
Peluncur memulai berkas eksekusi lain untuk pertandingan, dan proses itu memiliki soketnya sendiri. Temukan proses sebenarnya, cocokkan pengenal yang tepat, lalu uji.
Anda menambahkan peluncur ke daftar pengecualian, unduhan melonjak dari lambat menjadi cepat, dan pertandingan tetap mendarat di server jauh. Tidak ada yang rusak. Peluncur dan gim adalah dua proses dengan dua kumpulan soket, dan mengecualikan satu tidak mengatakan apa pun tentang yang lain. Unduhan menjadi lebih cepat karena unduhan adalah lalu lintas peluncur; pertandingan adalah koneksi orang lain, yang dibuka oleh berkas eksekusi yang belum pernah dilihat aturan Anda.
Satu penginstal, banyak proses
Perangkat lunak gim modern adalah konstelasi kecil. Ada klien yang memasukkan Anda, pembaru yang menarik konten, peluncur yang memulai gim, dan berkas eksekusi gim yang mungkin sendiri memunculkan proses kedua untuk anti-cheat atau untuk lapisan pencocokan. Masing-masing dapat memegang koneksinya sendiri ke tujuannya sendiri.
Aturan pengecualian biasanya menyebut salah satunya. Yang mana yang disebut sepenuhnya bergantung pada pengenal yang didukung klien VPN, dan itulah bagian yang jarang diperiksa pengguna. Beberapa klien mencocokkan jalur berkas eksekusi, beberapa mencocokkan pengenal paket atau bundel, dan beberapa mencocokkan nama proses yang dapat dipakai bersama oleh dua biner tak terkait. Baca aturan sebelum membaca daftar proses, karena aturan membatasi bahkan apa yang dapat Anda nyatakan.
Jadi gejalanya bukan “tunnel terpisah rusak”. Gejalanya adalah “aturan mencakup proses yang bukan proses yang membawa lalu lintas yang saya pedulikan”, yang merupakan pernyataan jauh lebih sempit dan jauh lebih dapat diperbaiki. Begitu Anda mengatakannya seperti itu, langkah berikutnya berhenti menjadi dugaan.
Temukan proses yang memiliki koneksi pertandingan
Mulai gim, masuk ke pertandingan, dan lihat siapa yang memiliki soket, bukan apa yang ada di layar. Di Windows, daftar proses plus kueri soket per proses menjawabnya dalam dua perintah:
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
Perintah kedua mencetak ID proses, bukan nama, jadi gabungkan kedua keluaran berdasarkan ID. Baris yang Anda cari adalah baris yang alamat jauhnya milik layanan gim, dan proses pemiliknya adalah berkas eksekusi yang harus disebut aturan Anda.
Di Linux pertanyaan yang sama membutuhkan satu perintah per jenis soket, dan keduanya layak diperiksa, karena koneksi pertandingan bisa UDP sementara semua yang lain TCP:
ss -tunp state established | grep -i game
ss -tunp | awk 'NR==1 || /udp/'
Jika gim berjalan di kontainer atau lapisan kompatibilitas, proses yang Anda temukan mungkin shim, bukan biner yang Anda pasang. Dalam hal ini pengenal yang penting adalah yang dilihat klien, yang mungkin jalur shim, dan berapa pun penyuntingan berkas asli tidak akan memengaruhinya.
Cocokkan pengenal yang didukung klien Anda
Baca dokumentasi klien untuk aturan pengecualian sebelum menambahkan apa pun. Ketiga model umum berperilaku berbeda, dan salah satunya adalah jebakan.
| 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 |
Aturan jalur adalah yang paling tepat dan paling rapuh. Pembaruan peluncur yang memindahkan berkas eksekusi membuat aturan menunjuk ke berkas yang tidak lagi berjalan, dan gejalanya kembali tanpa ada yang tampak berubah. Aturan paket bertahan dari itu, dan aturan itu juga dapat diam-diam mencakup proses pembantu yang tidak pernah Anda pikirkan, yang entah nyaman atau mengkhawatirkan tergantung pembantunya.
Apa pun yang didukung klien, jangan menambahkan entri untuk setiap berkas eksekusi yang Anda temukan. Daftar yang disusun melalui coba-coba sampai satu sesi berhasil tidak dapat ditinjau, dan diam-diam akan mengumpulkan pengecualian untuk perangkat lunak tak terkait. Sebutkan proses yang Anda temukan, dan tuliskan untuk apa proses itu.
Uji pada pertandingan, bukan pada unduhan
Kecepatan unduh peluncur adalah uji terburuk yang mungkin, karena ia melatih tepat proses yang sudah dikecualikan. Gunakan hal yang gagal, dan periksa jalurnya, bukan tampilan performa gim itu sendiri:
ip route get 203.0.113.55
Get-NetTCPConnection -State Established | Where-Object RemotePort -eq 27015
Perintah pertama membutuhkan alamat yang menjadi tujuan resolusi server pertandingan, yang dapat diberikan log koneksi gim atau klien Anda. Jika rute menyebut antarmuka fisik, aturannya berfungsi. Yang kedua menunjukkan apakah ada sesi sama sekali, yang memisahkan “dikecualikan tetapi server sedang mati” dari “tidak dikecualikan”.
Jaga wilayah dan jaringan akses tetap selama pengujian. Pertandingan yang mendarat di pusat data berbeda setiap percobaan menghasilkan alamat berbeda, dan Anda akan berakhir mengejar target bergerak alih-alih memvalidasi aturan. Dua jalankan dengan alamat yang sama lebih bernilai daripada sepuluh dengan alamat berbeda.
Periksa ulang setelah pembaruan berikutnya
Setiap aturan berbasis jalur memiliki masa pakai yang diukur dalam siklus tambalan. Saat gim berhenti mematuhi pengecualian sebulan kemudian, hal pertama yang diperiksa adalah apakah berkas eksekusi berpindah, dan yang kedua adalah apakah proses pembantu baru muncul di sampingnya.
Model pengecualian aplikasi yang didokumentasikan oleh satu klien adalah rujukan yang wajar untuk cara aturan ini dijelaskan, meskipun detailnya berbeda antarproduk. Baca milik Anda, catat pengenal yang Anda gunakan, dan catat tanggalnya. Catatan itulah yang mengubah misteri menjadi perbaikan lima menit saat peluncur mengirim pembaruan berikutnya.
Jika klien sama sekali tidak dapat menyatakan batas yang Anda butuhkan, kebijakan lebih luas yang disetujui lebih baik daripada tumpukan pengecualian yang tidak terdokumentasi. Luas dan dipahami mengalahkan sempit dan salah, terutama ketika versi sempit itulah yang semua orang yakini berlaku.