Mengarahkan aplikasi ke port SOCKS berhasil untuk peramban dan gagal untuk gim, dan penyebabnya bukan konfigurasi. SOCKS5 mendefinisikan beberapa perintah, dan implementasi bebas mendukung hanya sebagian; antarmuka Tor menerima koneksi aliran dan resolusi nama, bukan penerusan datagram sembarangan. Klien yang mengirim UDP dan berharap proksi meneruskannya meminta perintah yang tidak diimplementasikan server. Panduan di bawah memeriksanya dalam beberapa menit lalu memilih transport yang benar-benar dapat bekerja.

Periksa apa yang sebenarnya dikirim aplikasi

Mulailah dengan mengenali transport, bukan nama protokol. Klien suara dapat masuk melalui HTTPS lalu membawa media melalui UDP; gim dapat mengautentikasi melalui TCP dan bermain melalui UDP; transfer berkas dapat memakai TCP untuk kendali dan UDP untuk penemuan. Dua perilaku pertama tampak sama sampai proses masuk berhasil dan panggilan tetap gagal, karena itu “sudah tersambung” bukan bukti seluruh aplikasi bekerja. Sebagian klien juga kembali sendiri dari UDP ke TCP, yang membuat sesi yang bekerja sebagian tampak seperti jaringan tidak stabil alih-alih transport yang diblokir.

Catat port tujuan dan transport untuk bagian yang gagal. Satu baris itu menentukan apakah proksi sama sekali dapat membantu.

Apa yang akan diterima antarmuka SOCKS Tor

Tor mengimplementasikan perintah SOCKS5 CONNECT untuk koneksi aliran dan perintah ekstensi untuk menyelesaikan nama, karena itu peramban bekerja melaluinya tanpa perubahan. UDP ASSOCIATE, perintah yang akan memungkinkan klien menyerahkan datagram ke proksi untuk diteruskan, bukan bagian dari yang ditawarkan Tor. Dokumentasi ekstensi berada di spesifikasi ekstensi SOCKS proyek, dan isinya singkat. Tidak adanya perintah datagram disengaja: meneruskan UDP sembarangan akan memberi jaringan peran penerus yang tidak pernah dirancang untuknya.

Ini juga jawaban untuk WireGuard, yang secara desain adalah UDP dan tidak memiliki cadangan TCP. Tidak ada jalur yang didukung untuk mengarahkan WireGuard ke port SOCKS, dan apa pun yang mengklaim sebaliknya adalah pembungkus dengan cerita kepercayaan dan pemeliharaannya sendiri, bukan fitur salah satu dari dua alat itu.

OpenVPN adalah pengecualian sebagian, karena dapat dikonfigurasi untuk membuat terowongan melalui TCP dan memahami opsi proksi SOCKS. Itu tetap memerlukan server yang dikonfigurasi untuk TCP dan keputusan sadar tentang konsekuensi kinerja dan sidik jari, jadi ini pilihan desain, bukan perbaikan kompatibilitas.

Jalankan pemeriksaan secara berurutan

Pastikan dulu proksi bekerja untuk aliran, agar kegagalan berikutnya tidak disalahkan pada port yang tak terjangkau. Lalu pastikan lalu lintas aplikasi itu sendiri, dan perhatikan soket mana yang benar-benar dibukanya.

curl --socks5-hostname 127.0.0.1:9050 -sS https://check.torproject.org/api/ip
ss -tupn | grep 9050
ss -aun | grep -E ':(3478|5060|27015)\b'

Perintah pertama yang berhasil dan aliran yang terbentuk di baris kedua menunjukkan jalur proksi bekerja sebagaimana dirancang. Perintah ketiga mencari soket datagram lokal milik aplikasi; jika klien membuka satu dan mengirim langsung ke alamat jauh, ia tidak pernah bertanya pada proksi dan tidak ada pengaturan proksi yang mengubahnya. Jika gagal pada langkah pertama, berhentilah dan perbaiki jalur proksi sebelum menyelidiki aplikasi, karena dua kesalahan sekaligus menghasilkan laporan yang tidak dapat ditindaklanjuti siapa pun.

Kembalikan dan pilih alat yang tepat

Hapus variabel lingkungan proksi atau pengaturan proksi per aplikasi yang mengarahkan klien UDP ke port SOCKS; membiarkannya membuat pengujian berikutnya ambigu. Pulihkan konfigurasi sebelumnya dari salinan, jalankan ulang aplikasi, dan pastikan perilaku asli kembali agar perbandingannya bersih. Pengembalian yang tidak diverifikasi hanyalah harapan bahwa keadaannya berubah.

Untuk transport yang harus tetap UDP, VPN biasanya lebih cocok: ia membawa paket aplikasi tanpa meminta aplikasi berbicara protokol proksi, dengan biaya sifat anonimitas yang sama sekali berbeda. Gunakan setiap alat untuk apa yang didokumentasikannya, dan perlakukan jembatan apa pun di antaranya sebagai sistem terpisah yang perlu tinjauan sendiri. Catat dalam laporan akhir lapisan mana membawa transport mana, agar orang berikutnya tidak menemukan kembali batas yang sama dengan aplikasi lain.

Artikel terkait