ในที่สุดฉันก็สามารถจัดการสิ่งนี้ให้สำเร็จได้ด้วยssh
:
- เริ่มต้นพร็อกซี SOCKS ในเครื่องของคุณ (โดยใช้
ssh -D
)
- เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลและตั้งค่าการส่งต่อพอร์ตย้อนกลับ (
ssh -R
) ไปยังพร็อกซี SOCKS ในพื้นที่ของคุณ
- กำหนดค่าซอฟต์แวร์เซิร์ฟเวอร์เพื่อใช้พร็อกซีที่ส่งต่อ
1. เริ่มต้นพร็อกซีถุงเท้าท้องถิ่นในพื้นหลัง
เชื่อมต่อ localhost ผ่าน SSH และเปิด SOCKS proxy ที่พอร์ต 54321
$ ssh -f -N -D 54321 localhost
-f
รัน SSH ในพื้นหลัง
หมายเหตุ: ถ้าคุณปิดเทอร์มินัลที่คุณเริ่มต้นคำสั่งกระบวนการพร็อกซีจะถูกฆ่า อย่าลืมล้างข้อมูลด้วยตัวเองโดยปิดหน้าต่างเทอร์มินัลเมื่อคุณทำเสร็จหรือฆ่ากระบวนการด้วยตัวเอง!
2. เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลและตั้งค่าการส่งต่อพอร์ตย้อนกลับ
ผูกพอร์ตระยะไกล 6666 ไปยังพอร์ตโลคัล 54321 สิ่งนี้ทำให้พร็อกซีถุงเท้าโลคัลของคุณพร้อมใช้งานกับไซต์ระยะไกลบนพอร์ต 6666
$ ssh root@target -R6666:localhost:54321
3. กำหนดค่าซอฟต์แวร์เซิร์ฟเวอร์เพื่อใช้พร็อกซีที่ส่งต่อ
เพียงแค่กำหนดค่า yum, ฉลาด, ขด wget หรือเครื่องมืออื่น ๆ 127.0.0.1:6666
ที่สนับสนุนถุงเท้าจะใช้พร็อกซี่
Voila! Happy tunneling!
4. ทางเลือก: กำหนดค่าซอฟต์แวร์เซิร์ฟเวอร์เพื่อใช้พร็อกซีที่ส่งต่อ
ฉันพบว่าการติดตั้งproxychains
บนเซิร์ฟเวอร์เป้าหมายทำให้สิ่งต่าง ๆ ง่ายขึ้นมาก
ช่วยให้ซอฟต์แวร์ใด ๆ ที่ใช้พร็อกซี SOCKS (คู่telnet
) โดยใช้LD_PRELOAD
เคล็ดลับในการเปลี่ยนเส้นทางคำขอ TCP และ DNS จากคำสั่งโดยพลการไปยังพร็อกซี
การตั้งค่า/etc/proxychains.conf
เพื่อใช้พร็อกซีของถุงเท้าที่ส่งต่อ:
[ProxyList]
# SSH reverse proxy
socks5 127.0.0.1 6666
เครื่องมือโดยพลการ Tunnel (ที่ใช้ TCP) ด้วยproxychains
:
$ proxychains telnet google.com 80
$ proxychains yum update
$ proxychains apt-get update