配置本地端口转发至Amazon DocumentDB集群时命令持续加载无响应
解决SSH端口转发到Amazon DocumentDB无响应的问题
以下是几个实用的排查和解决方向,按优先级尝试:
先验证基础SSH连接是否正常
去掉命令里的-N参数,直接执行ssh -i "rsa.pem" ubuntu@X.X.X.X,看能否正常登录EC2实例。如果登不上:- 检查
rsa.pem的权限,必须设置为600:chmod 600 rsa.pem,权限过宽会被SSH拒绝加载 - 核对EC2实例绑定的密钥对是否和
rsa.pem匹配,同时检查EC2安全组是否允许你的本地IP访问22端口
- 检查
检查EC2到DocumentDB的网络连通性
成功登录EC2后,在EC2上执行nc -zv docdb.cluster-XXXXX.us-east-1.docdb.amazonaws.com 27017或telnet docdb.cluster-XXXXX.us-east-1.docdb.amazonaws.com 27017,测试能否连通:- 如果不通,说明DocumentDB的安全组未开放27017端口给EC2的私网IP,或是VPC路由表、网络ACL限制了流量,去AWS控制台调整对应配置
- 如果能通,说明网络层面没问题,转回本地排查
确认本地端口是否被占用
本地27017端口可能被其他进程(比如本地MongoDB服务)占用,导致SSH无法绑定端口:- macOS/Linux用
lsof -i :27017查看占用进程,Windows用netstat -ano | findstr :27017 - 要么终止占用进程,要么换一个本地端口,比如把命令改成
ssh -i "rsa.pem" -L 27018:docdb.cluster-XXXXX.us-east-1.docdb.amazonaws.com:27017 ubuntu@X.X.X.X -N
- macOS/Linux用
开启SSH调试模式定位具体问题
给SSH命令加上-v参数生成详细日志:ssh -v -i "rsa.pem" -L 27017:docdb.cluster-XXXXX.us-east-1.docdb.amazonaws.com:27017 ubuntu@X.X.X.X -N从日志里可以看到连接的每一步状态,比如是卡在连接EC2阶段,还是卡在建立转发通道,根据日志提示针对性解决
内容的提问来源于stack exchange,提问作者Paulo Henrique
相关产品推荐
相关产品推荐

