ฉันสามารถสร้าง SSH เพื่อทันเนล HTTP ผ่านเซิร์ฟเวอร์เหมือนเป็นพร็อกซีได้หรือไม่


33

บอกว่าผมมีและserver clientฉันต้องการสร้างการเชื่อมต่อจากclientถึงwebsiteถึงserverเหมือนเป็นพร็อกซี

มันเป็นไปได้ที่จะทำเช่นนี้โดยใช้ Tunel SSH หรือฉันจะต้องติดตั้งบริการ proxy บางอย่างเพื่อserver?

คำตอบ:


43

คุณสามารถทำได้โดยใช้ ssh

ssh -L 80:remotehost:80 user@myserver

คุณจะมีช่องสัญญาณจากโลคัลพอร์ต 80 ถึงรีโมตพอร์ต 80 จากนั้น สิ่งนี้ไม่จำเป็นต้องเหมือนกับ myserver เพื่อให้โปร่งใสคุณควรเพิ่มรายการไปยังไฟล์โฮสต์ หากคุณไม่ทำเช่นนั้น vhosts จะไม่ทำงาน หากคุณต้องการการเชื่อมต่อพร็อกซี SOCKS คุณสามารถใช้

ssh -D 5000 user@myserver

สิ่งนี้จะสร้าง SOCKS-proxy บน localhost พอร์ต 5000 ซึ่งกำหนดเส้นทางการร้องขอทั้งหมดผ่านทาง myserver


2
หากคุณต้องการใช้ช่องสัญญาณนั้นจากไคลเอนต์ที่อยู่นอกกล่องให้เพิ่มตัวเลือก -g
mr-euro

1
คำสั่งตามที่เขียนไม่ทำงานสำหรับฉัน ฉันต้องแทนที่รีโมตโฮสต์ด้วยลูปแบ็คดังนี้: ssh -L 80: 127.0.0.1: 80 user @ myserver
eficker

น่าจะมีประโยชน์มากกว่านี้ถ้าพอร์ตระยะไกลแตกต่างจากssh -L 81:remotehost:80 user@myserverโลคัลพอร์ตท้องถิ่น 81 พอร์ตที่พูดเช่นเดียวกับ 80 บนรีโมต
Rafareino

1
หากคุณต้องการเพิ่มพร็อกซี SOCKS ผ่าน ~ / .ssh / config ของคุณให้ใช้:Host myserver User user DynamicForward 5000
bonh

15

ใช่มันเป็นไปได้

เรียกใช้ssh -D port user@hostและตั้งค่าไคลเอนต์ของคุณเพื่อใช้กล่องของคุณเป็นพร็อกซี SOCKS

หากคุณต้องการพร็อกซี HTTP โดยเฉพาะคุณสามารถใช้ Proxychains และกำหนดเส้นทางผ่าน SOCKS ก่อนหน้า


5

ผงสำหรับอุดรูทำสิ่งนี้ได้เช่นกัน

ภายใต้ SSH อุโมงค์ข้ามไป ที่ด้านล่างใส่ 8080 ในพอร์ตและสำหรับปลายทางปล่อยให้เป็นสีดำและเลือกปุ่มตัวเลือก "ไดนามิก" นั่นคือทั้งหมดที่คุณต้องทำตอนนี้เชื่อมต่อกับเซิร์ฟเวอร์โดยใช้ Putty

เมื่อเชื่อมต่อแล้วคุณจะมีพร็อกซีเซิร์ฟเวอร์ทำงานบนโลคัลโฮสต์ของคุณที่พอร์ต 8080 ซึ่งจะทำการร้องขอผ่านพร็อกซีเซิร์ฟเวอร์ทั้งหมดของคุณ

ตอนนี้ใช้เว็บเบราว์เซอร์และตั้งค่าพร็อกซี่โดยการตั้งค่า host = localhost และพอร์ต = 8080 และตรวจสอบให้แน่ใจว่าเป็นพร็อกซี SOCKS ที่คุณเลือก ฉันทำเช่นนี้ตลอดเวลาดังนั้นหากคุณใช้ Firefox ตรวจสอบให้แน่ใจว่าได้ติดตั้งปลั๊กอิน FoxyProxy เนื่องจากมันทำให้การเปิด / ปิดพร็อกซีเป็นเรื่องเดียว

ข้อควรระวัง: โปรดทราบว่าโดยค่าเริ่มต้นคำขอของ DNS ของคุณจะไม่ถูกนำไปใช้ ดังนั้นเว็บไซต์ที่คุณเยี่ยมชมผ่านพร็อกซีจะยังคงถูกบันทึกไว้ (หากพวกเขาบันทึกสิ่งนี้) คุณสามารถตั้งค่า firefox ให้เป็นคำขอ DNS พร็อกซีได้เช่นกันมันไม่ได้ทำตามค่าเริ่มต้น


5

sshuttle ทำงานเหมือน VPN แต่เหนือ SSH

พร็อกซีเซิร์ฟเวอร์โปร่งใสที่ทำงานเป็น VPN ของคนยากจน ส่งต่อมากกว่า ssh ไม่ต้องการผู้ดูแลระบบ ทำงานร่วมกับ Linux และ MacOS รองรับการขุด DNS

https://github.com/sshuttle/sshuttle


2

หากต้องการอนุญาตให้พร็อกซีใช้งานคอมพิวเตอร์และอนุญาตให้ไคลเอนต์อื่นเชื่อมต่อกับคุณคุณจะต้องใช้ตัวเลือก -g ตัวอย่างเช่นคุณจะรันสิ่งนี้บนเซิร์ฟเวอร์ชื่อ foo:

ssh -g -ND 9191 root@remotehost

จากนั้นคุณสามารถตั้งค่าพร็อกซีในเบราว์เซอร์ของไคลเอ็นต์ให้ใช้เซิร์ฟเวอร์ foo และพอร์ต 9191 สำหรับพร็อกซี SOCKS ลูกค้าจะส่งคำขอของพวกเขาด้วย foo ผู้ที่จะส่งต่อคำขอผ่าน ssh ไปยัง remotehost ดังนั้นบนอินเทอร์เน็ตมันจะดูเหมือนว่าพวกเขากำลังใช้รีโมตโฮสต์

หากคุณต้องการส่งต่อคำขอ DNS ด้วย firefox ให้แก้ไข about: config ใน firefox และตั้งค่า network.proxy.socks_remote_dns เป็น true


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.