Ada dua proksi SOCKS yang saya tahu tentang yang mendukung proxy transparan untuk koneksi TCP keluar: Tor dan redsocks . Tidak seperti proksi HTTP, proksi SOCKS ini dapat secara transparan mem - proxy setiap koneksi TCP keluar, termasuk protokol dan protokol terenkripsi tanpa metadata atau header.
Kedua proksi ini memerlukan penggunaan NAT untuk mengalihkan lalu lintas TCP keluar ke port lokal proxy. Misalnya, jika saya menjalankan Tor dengan TransPort 9040
di mesin lokal saya, saya perlu menambahkan aturan iptables seperti ini:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040
Sepengetahuan saya, ini akan menggantikan IP dan port tujuan asli dengan 127.0.0.1
dan 9040
, jadi mengingat ini adalah aliran terenkripsi (seperti SSH) atau yang tanpa header (seperti whois ), bagaimana proksi mengetahui IP dan port tujuan asli?