มันง่ายสำหรับฉันที่จะเชื่อมต่อกับเซิร์ฟเวอร์ mysql ระยะไกลของฉันบน AWS โดยใช้ภาคต่อแต่ฉันพยายามทำสิ่งเดียวกันกับ MongoDB
ฉันพยายามตั้งค่า ssh tunnel ผ่าน command line ดังนี้:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
ฉันยังลองเปลี่ยนโฮสต์ด้วยที่อยู่ IP
ความคิดคือการส่งต่อการเชื่อมต่อ MongoDB ทั้งหมดบนพอร์ต 9999 ไปยังหนึ่งในโฮสต์บนพอร์ต 27,101 .. อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่ง:
mongo --host localhost --port 9999
การเชื่อมต่อล้มเหลวฉันได้รับสิ่งนี้แทน:
MongoDB shell version: 2.6.0
connecting to: localhost:9999/test
channel 2: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed
2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 ns: admin.$cmd query: { whatsmyuri: 1 } at src/mongo/shell/mongo.js:148
exception: connect failed
ถ้าฉันเรียกใช้sudo netstat -plnt
ฉันได้รับต่อไปนี้ (ซึ่งดูเหมือนว่าตามลำดับ):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4242/node
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1342/httpd2-prefork
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2552/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2505/master
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 11719/mongod
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 16561/redis-server
ความคิดใดที่ฉันกำลังทำผิดอยู่?
อัปเดต: นี่เป็นลักษณะที่คำสั่งการใช้งานขั้นสุดท้ายดูเหมือนว่า (เครดิตไปที่kenster ):
ssh -fN -i ~/path/to/id_rsa -L 6666:localhost:27017 root@remote.server.com
โดยที่-fN
คำสั่งทำให้คำสั่งนี้ทำงานในพื้นหลัง
-L
ดูเหมือนจะขัดแย้งกับหน้าคน ssh:-L [bind_address:]port:host:hostport Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
มันบอกอย่างชัดเจนว่าhost
เป็นโฮสต์ของเซิร์ฟเวอร์ระยะไกล .. คุณใช้มันเพื่อท้องถิ่น?