ฉันพยายามมาหลายชั่วโมงแล้วและต้องการข้อมูลใหม่
การตั้งค่าของฉัน:
- Ubuntu VM (UVM) เรียกใช้คอนเทนเนอร์นักเทียบท่าที่ส่งต่อข้อความ RabbitMQ ไปยังเครื่องภายนอก
- Local Laptop (LVM) ที่ใช้ Windows 10 เรียกใช้อินสแตนซ์ RabbitMQ ในนักเทียบท่าบนพอร์ต 5672
สิ่งที่ฉันพยายามทำ:
บน UVM ของฉัน ฉันได้ตั้งค่าสภาพแวดล้อมการทดสอบที่สื่อสารผ่าน RabbitMQ กับไมโครเซอร์วิสต่างๆ ฉันได้รับข้อมูลในระบบทดสอบนี้ซึ่งฉันต้องการสำหรับการพัฒนาต่อไป
ตอนนี้ฉันต้องการส่งต่อข้อมูลนี้ผ่าน RabbitMQ ไปยังเครื่อง LVM ภายนอกเครื่องอื่น ใน LVM ฉันกำลังเรียกใช้ RabbitMQ อีกอินสแตนซ์เพื่อรับข้อมูลที่ส่งต่อ
ทั้งสองเครื่องอยู่ในเครือข่ายองค์กรเดียวกัน แต่เนื่องจากกฎไฟร์วอลล์ที่ไม่สามารถเปลี่ยนแปลงได้ พอร์ต 5672 (พอร์ตมาตรฐาน AMQP) ถูกบล็อก
ความหวังเดียวของฉันคือการสร้างอุโมงค์ SSH แบบย้อนกลับและปล่อยให้การรับส่งข้อมูล RabbitMQ ทั้งหมดเดินทางผ่านที่นั่น
ฉันทำอะไรลงไป:
จาก LVM ฉันสร้างการส่งต่อพอร์ต SSH ระยะไกล:
ssh -R 8888:localhost:5672 user@UVM
บน UVM ฉันได้กำหนดค่าการส่งต่อคอนเทนเนอร์นักเทียบท่าเพื่อส่งข้อมูลทั้งหมดไปยังพอร์ต 8888 บน UVM ผ่านโปรโตคอล RabbitMQ ฉันตรวจสอบแล้วว่าใช้งานได้โดย:
- โฮสต์อินสแตนซ์ RabbitMQ อื่นบน UVM ฟังโดยเฉพาะบน 8888 สามารถสร้างการเชื่อมต่อได้
- ใช้ nc -l -p 8888 ซึ่งส่งออก AMQP และสตริงที่มีรูปแบบแปลกๆ
ฉันมั่นใจว่าอุโมงค์ SSH ทำงานระหว่าง UVM และ LVM โดย:
- UVM: nc localhost 8888 <test.txt
- LVM: nc -l -p 5672
เนื้อหาของไฟล์ txt ถูกส่งสำเร็จแล้ว
นอกจากนี้ ฉันปิด LVM RabbitMQ เพื่อให้ฉันสามารถ nc -l -p 5672 และดูว่าการรับส่งข้อมูล AMQP มาถึงหรือไม่
สรุป: ฉันรู้ว่าการส่งต่อข้อมูลทำงานได้อย่างถูกต้อง และฉันรู้ว่าอุโมงค์นั้นสร้างอย่างถูกต้อง แต่ด้วยเหตุผลนอกเหนือจากฉัน ทราฟฟิก AMQP ไม่ได้ถูกส่งต่อผ่านอุโมงค์ SSH
ใครช่วยแนะนำด้วยได้ไหม
ขอแสดงความนับถืออย่างสูง