ทำในสิ่งที่คุณต้องการผมขอแนะนำให้sshuttle
คุณใช้มันแบบนี้:
./sshuttle -r username@sshserver 0.0.0.0/0 -vv
มันจะขุดทราฟฟิก TCP ทั้งหมดของคุณโดยอัตโนมัติ คุณสามารถเพิ่ม--dns
อาร์กิวเมนต์เพื่อให้ทันการรับส่งข้อมูล DNS ของคุณได้เช่นกัน รีโมตเซิร์ฟเวอร์จำเป็นต้องติดตั้ง Python เท่านั้น
หากคุณต้องการโปรแกรมเฉพาะอุโมงค์ฉันจะแนะนำproxychains
เมื่อติดตั้งแล้วให้เริ่มต้นพร็อกซี ssh socks ของคุณเช่นนี้:
ssh -fND 127.0.0.1:<local port> username@sshserver
สิ่งนี้จะเริ่มต้นพร็อกซี "SOCKS" การฟังบน <โลคัลพอร์ต>
จากนั้นแก้ไข /etc/proxychains.conf ให้ชี้ไปที่พอร์ตเดียวกันกับ <local port>
สุดท้ายเริ่มโปรแกรมของคุณที่คุณต้องการ proxy-ed ดังนี้:
proxychains <program name>
มันควรจะทำงาน อย่างไรก็ตามบางโปรแกรมจะมีปัญหาในการทำงานกับ Proxy Chains โปรดจำไว้ว่าด้วย Firefox คุณต้องเปลี่ยนรายการเพิ่มเติมภายใต้ about: config เพื่อบังคับให้ทำการค้นหา DNS ผ่านพร็อกซีแทนที่จะข้ามไป
เป็นหมายเหตุเพิ่มเติมบนเว็บเบราว์เซอร์ หากพวกเขาสนับสนุนถุงเท้าพร็อกซี่คุณไม่จำเป็นต้องทำอะไรเพิ่มเติมเพื่อให้พวกเขาใช้ ssh tunnel ดังกล่าวข้างต้นเพียงป้อน 127.0.0.1 สำหรับพร็อกซีเซิร์ฟเวอร์ SOCKS และ <โลคัลพอร์ต> สำหรับพอร์ตพร็อกซี
แก้ไข 3/29/16
เนื่องจากโพสต์นี้ยังเห็น upvotes อยู่ฉันคิดว่าฉันจะอัปเดต Proxychains ยังคงอยู่ใน repos Linux ส่วนใหญ่และยังคงทำงานบน Linux อย่างไรก็ตามโครงการถูกยกเลิกอย่างมีประสิทธิภาพและไม่ทำงานบน OSX สำหรับ Linux หรือ OSX ฉันขอแนะนำให้อัพเกรดเป็นทางแยกที่ยังคงได้รับการดูแล: proxychains-ng: https://github.com/rofl0r/proxychains-ng
นอกเหนือจากการทำงานในทั้ง Linux และ OSX มันเป็นเรื่องง่ายที่จะรวบรวมและยังรองรับ DNS tunneling ได้ดีกว่ามาก
ฉันควรพูดถึงตัวเลือกอื่นซึ่งก็คือ redsocks มันทำงานคล้ายกับ proxychains (-ng) และยังเป็นไปได้ใน repo ของคุณ: https://github.com/darkk/redsocks