Letakkan Rundingan SOCKS Netty Sebelum Protokol Aplikasi Anda
Susun pengendali proksi SOCKS Netty sebelum trafik aplikasi dan kekalkan destinasi yang belum diselesaikan apabila DNS di sebelah proksi memang dikehendaki.
Untuk bootstrap/pipeline Netty sedia ada di mana pelayan SOCKS harus menyelesaikan destinasi:
bootstrap.resolver(NoopAddressResolverGroup.INSTANCE);
pipeline.addFirst(
new Socks5ProxyHandler(new InetSocketAddress("127.0.0.1", 1080))
);
bootstrap.connect(
InetSocketAddress.createUnresolved("example.com", 443)
);Titik akhir proksi ialah port tempatan 1080; sasaran sambungan yang belum diselesaikan ialah example.com:443. Jangan gunakan alamat proksi untuk kedua-dua peranan dan jangan selesaikan nama sebelum pengendali menerimanya. Untuk sasaran awam pada laluan proksi awam yang dibenarkan, senarai proksi SOCKS5 menyediakan calon untuk titik akhir proksi pengendali.
Letakkan Socks5ProxyHandler sebelum pengendali yang bertukar trafik destinasi. Tunggu future sambungan proksinya, bukan sekadar saluran yang sampai ke pendengar. Kaedah atau destinasi yang ditolak tergolong dalam peringkat persediaan ini.
Untuk HTTPS, lapisan TLS seterusnya menggunakan nama hos destinasi, pengesahan dan kepercayaan yang diperlukan—bukan identiti titik akhir SOCKS. Hanya selepas itu pertukaran HTTP/aplikasi bermula.
Serpihan ini tidak menyediakan gelung peristiwa, jenis saluran, pengendali TLS/HTTP atau pengendalian ralat biasa. Pilih pembina SOCKS yang sepadan dengan keperluan pengesahan; pengendali HTTP Basic ialah protokol lain.
Gunakan resolver no-op hanya di tempat pengendali hiliran ini memiliki penyelesaian nama hos. Sambungan lain mungkin memerlukan carian tempatan. Asingkan output resolver, future proksi, TLS dan hasil aplikasi semasa mendiagnosis kegagalan.