ต้องการข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าเครือข่ายของคุณเพื่อตอบคำถามนี้อย่างครบถ้วน ดังนั้นฉันจะตั้งสมมติฐานบางประการที่นี่ คุณต้องปรับคำตอบให้เข้ากับกรณีของคุณ
คำถามแรกคือ: คุณบอกว่าคุณมีการเชื่อมต่อ ssh จาก VM1 ถึง VM2 คุณมี เท่านั้น การเชื่อมต่อ ssh หรือคุณมีการเชื่อมต่อเครือข่ายปกติระหว่าง VM1 และ VM2 หรือไม่ หากคุณมีการเชื่อมต่อเต็มรูปแบบ คุณไม่จำเป็นต้องใช้ ssh tunnel สำหรับพร็อกซี เพราะมันซับซ้อนเกินไป
สมมติว่าคุณมีการเชื่อมต่อเต็มรูปแบบและที่อยู่ IP VM1 ของคุณคือ 192.168.1.100
และที่อยู่ IP VM2 ของคุณคือ 192.168.1.200
. คุณควรกำหนดค่าพร็อกซีบน VM1 เพื่อรับฟัง เช่น บนพอร์ต 3128 (โดยปกติจะเป็นหมายเลขพอร์ตทั่วไปที่ใช้สำหรับพร็อกซี แม้ว่าคุณจะใช้หมายเลขพอร์ตที่ไม่ได้ใช้ก็ตาม) และกำหนดค่า VM2 ให้ใช้พร็อกซี 192.168.1.100:3128
. นั่นคือทั้งหมด
หากคุณมีเฉพาะการเชื่อมต่อ ssh (เช่น มีไฟร์วอลล์ระหว่าง VM สองตัวที่ส่งผ่านเฉพาะทราฟฟิก ssh) คุณต้องส่งต่อพอร์ตผ่านการเชื่อมต่อ ssh สมมติว่าคุณยังคงเรียกใช้พร็อกซีบน VM1 บนพอร์ต 3128 และคุณกำลังเชื่อมต่อผ่าน ssh จาก วีเอ็ม1 ถึง VM2 (ตามที่คุณเขียนในคำถามของคุณ) ในกรณีนั้น คุณต้องใช้คำสั่งต่อไปนี้บน VM1 เพื่อเชื่อมต่อกับ VM2:
ssh -R 3128:localhost:3128 192.168.1.200
หลังจากที่คุณสร้างการเชื่อมต่อแล้ว คุณสามารถตั้งค่า VM2 ให้ใช้พร็อกซีได้ที่ localhost:3128
.
คุณยังสามารถเชื่อมต่อด้วยวิธีอื่นได้ เช่น จาก วีเอ็ม2 ถึง VM1 โดยใช้คำสั่ง (บน VM2):
ssh -L 3128:localhost:3128 192.168.1.100
ในทำนองเดียวกัน หลังจากสร้างการเชื่อมต่อแล้ว ให้ตั้งค่า VM2 ให้ใช้พร็อกซีที่ localhost:3128
.