Aplikasi tidak punya opsi SOCKS, tetapi dapat terhubung ke alamat TCP yang dipilih. Adaptor bertarget tetap dapat menyediakan percakapan SOCKS untuk satu tujuan. Ia tidak harus menjadi proxy penerus umum lainnya.

Untuk build socat yang menyediakan SOCKS4A, tatanan ilustratifnya adalah:

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 adalah port lokal 1080. Adaptor mendengarkan di port lokal 9443 dan meminta titik akhir itu untuk service.example.net:443. Ini nilai contoh, bukan penyebaran layanan yang lengkap.

Adaptor punya satu target tetap

Setiap koneksi TCP yang diterima meminta layanan yang sama. Aplikasi yang terhubung ke 9443 memasok byte protokol normalnya; socat memasok negosiasi SOCKS4A. Mengirim permintaan HTTP CONNECT baru ke 9443 tidak akan memilih tujuan lain—ia akan meneruskan byte itu ke layanan tetap.

SOCKS4A memasok nama host ke titik akhir SOCKS untuk resolusi jarak jauh. Itu berbeda dari bentuk SOCKS4 yang memakai alamat pilihan klien. Upstream yang dipilih—termasuk kandidat publik dari daftar proxy SOCKS4—harus mendukung penanganan nama host SOCKS4A dan autentikasi yang diperlukan; contoh ini bukan resep login kata sandi SOCKS5.

Hubungkan secara lokal, kenali layanan sebenarnya

Mengubah URL HTTPS menjadi https://127.0.0.1:9443/ mengubah nama host yang dapat dipakai klien untuk TLS dan HTTP. Sertifikat untuk service.example.net tidak akan menjadi sertifikat yang valid untuk loopback.

Ketika klien mendukung perutean koneksi terpisah, pertahankan identitas URL asli. Curl dapat menggambarkan perbedaan itu:

curl --noproxy '*' \
  --connect-to service.example.net:443:127.0.0.1:9443 \
  https://service.example.net/

Socket menuju adaptor lokal sementara verifikasi TLS dan tujuan HTTP tetap service.example.net. Aplikasi lain membutuhkan kendali setara yang didukung sendiri; tidak semua klien menyediakannya.

Ikatan loopback membatasi paparan jaringan, tetapi proses lokal lain yang memenuhi syarat masih dapat menjangkaunya. Jaga masa pakai layanan dan pengguna tetap sesuai. Pertahankan verifikasi TLS alih-alih menekan kesalahan identitas akibat URL loopback.

Artikel terkait