You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH连接远程服务器并访问内部MongoDB端口?

问题分析与解决方法

错误核心原因

你遇到的连接错误是因为混淆了SSH端口与MongoDB端口的配置:连接字符串里把MongoDB的目标端口设为了SSH服务的22端口,导致Studio 3T试图直接和SSH服务通信,而非通过SSH隧道连接服务器内部的MongoDB实例,从而触发消息长度不匹配的异常。

具体解决步骤

1. 修正Studio 3T连接配置

按以下逻辑重新配置连接:

  • 常规配置页:
    • 服务器地址填写 127.0.0.1,端口填写 27017(这是SSH隧道映射到本地的端口,对应远程服务器内部的MongoDB端口)
  • SSH配置页:
    • 勾选「使用SSH隧道」
    • SSH地址填远程服务器地址 example.com,端口填 22
    • 认证方式选「密码」,填入SSH用户名(如root)和对应密码
  • 修正后的连接字符串:
    mongodb://127.0.0.1:27017/?serverSelectionTimeoutMS=5000&connectTimeoutMS=10000&3t.uriVersion=3&3t.connection.name=production&3t.ssh=true&3t.sshAddress=example.com&3t.sshPort=22&3t.sshAuthMode=password&3t.sshUser=root&3t.alwaysShowAuthDB=true&3t.alwaysShowDBFromUserRole=true
    
    核心是将MongoDB的目标地址改为127.0.0.1:27017,让SSH隧道把本地27017端口转发到远程服务器的127.0.0.1:27017。

2. 确认远程服务器配置有效性

  • 你的Docker Compose配置是正确的:"127.0.0.1:27017:27017" 确保MongoDB仅绑定服务器本地回环地址,不会暴露到公网,符合你的安全需求。
  • 确认远程服务器SSH服务正常运行,且使用的SSH用户(如root)可通过密码正常登录。

3. 测试连接

完成配置后点击「测试连接」,Studio 3T会先建立SSH隧道,再通过隧道连接远程服务器内部的MongoDB实例,即可正常连接。


内容的提问来源于stack exchange,提问作者pizzaisdavid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:37:23