มีสองผู้รับมอบฉันทะจากถุงเท้าที่ฉันรู้เกี่ยวกับว่าการสนับสนุนพร็อกซีโปร่งใสสำหรับการเชื่อมต่อใด ๆ TCP ขาออก: Torและredsocks ซึ่งแตกต่างจากพร็อกซี HTTP พร็อกซี SOCKS เหล่านี้สามารถพร็อกซีการเชื่อมต่อ TCP ขาออกใด ๆโปร่งใสรวมถึงโปรโตคอลและโปรโตคอลที่เข้ารหัสโดยไม่มีข้อมูลเมตาหรือส่วนหัว
พร็อกซีทั้งสองนี้ต้องการการใช้ NAT เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูล TCP ใด ๆ ไปยังพอร์ตโลคัลของพร็อกซี ตัวอย่างเช่นถ้าฉันใช้ Tor ด้วยTransPort 9040
บนเครื่องของฉันฉันจะต้องเพิ่มกฎ iptables ดังนี้:
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-port 9040
ตามความรู้ของฉันสิ่งนี้จะแทนที่ IP ปลายทางเดิมและพอร์ตด้วย127.0.0.1
และ9040
ดังนั้นเนื่องจากนี่เป็นสตรีมที่เข้ารหัส (เช่น SSH) หรือหนึ่งโดยไม่มีส่วนหัว (เช่นwhois ) พร็อกซีรู้จัก IP ปลายทางและพอร์ตดั้งเดิมอย่างไร