Jambatan SOCKS socat: kekalkan nama hos TLS laman
Gunakan pendengar TCP loopback untuk satu destinasi SOCKS sambil mengekalkan identiti HTTP dan TLS dalam aplikasi.
Aplikasi tiada pilihan SOCKS, tetapi boleh bersambung ke alamat TCP yang dipilih. Penyesuai sasaran tetap boleh menyediakan perbualan SOCKS untuk satu destinasi. Ia tidak perlu menjadi proksi penghantar umum yang lain.
Untuk binaan socat yang menyediakan SOCKS4A, susunan ilustratif ialah:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
Titik akhir SOCKS ialah port tempatan 1080. Penyesuai mendengar pada port tempatan 9443 dan meminta titik akhir itu service.example.net:443. Ini nilai contoh, bukan penggunaan perkhidmatan yang lengkap.
Penyesuai mempunyai satu sasaran tetap
Setiap sambungan TCP yang diterima meminta perkhidmatan yang sama. Aplikasi yang bersambung ke 9443 membekalkan bait protokol biasa; socat membekalkan rundingan SOCKS4A. Menghantar permintaan HTTP CONNECT baharu ke 9443 tidak akan memilih destinasi lain—ia akan menghantar bait itu ke perkhidmatan tetap.
SOCKS4A membekalkan nama hos kepada titik akhir SOCKS untuk penyelesaian jauh. Ini berbeza daripada bentuk SOCKS4 yang menggunakan alamat pilihan klien. Hulu yang dipilih—termasuk calon awam daripada senarai proksi SOCKS4—mesti menyokong pengendalian nama hos SOCKS4A dan pengesahan yang diperlukan; contoh ini bukan resipi log masuk kata laluan SOCKS5.
Bersambung secara tempatan, kenal pasti perkhidmatan sebenar
Menukar URL HTTPS kepada https://127.0.0.1:9443/ menukar nama hos yang boleh digunakan klien untuk TLS dan HTTP. Sijil untuk service.example.net tidak akan menjadi sijil sah untuk loopback.
Apabila klien menyokong penghalaan sambungan berasingan, kekalkan identiti URL asal. Curl boleh menggambarkan perbezaan itu:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
Socket pergi ke penyesuai tempatan sementara pengesahan TLS dan destinasi HTTP kekal service.example.net. Aplikasi lain memerlukan kawalan setara yang disokong sendiri; bukan setiap klien menyediakannya.
Ikatan loopback mengehadkan pendedahan rangkaian, tetapi proses tempatan lain yang layak masih boleh mencapainya. Kekalkan hayat perkhidmatan dan pengguna dengan wajar. Kekalkan pengesahan TLS daripada menekan ralat identiti yang disebabkan oleh URL loopback.