更新时间:2023-06-14 gmt 08:00
连接失败,提示:no route to host以及connection attempt failed-凯发k8国际娱乐官网入口
问题描述
使用如下命令连接dds实例时报错。
./mongo --host 192.168.1.6 --port 8635 -u rwuser -p xxxxxxxxx --authenticationdatabase admin --ssl --sslcafile /root/ca.crt –sslallowinvalidhostnames
报错信息如下:
mongodb shell version v3.4.17 connecting to: mongodb://192.168.1.6:8635/ 2019-09-19t09:38:36.954 0800 w network [thread1] failed to connect to 192.168.1.6:8635, in(checking socket for error after poll), reason: no route to host 2019-09-19t09:38:36.954 0800 e query [thread1] error: couldn't connect to server 192.168.1.6:8635, connection attempt failed : connect@src/mongo/shell/mongo.js:240:13 @(connect):1:6 exception: connect failed
可能原因
- dds实例的端口错误,不可用。
- dds实例与ecs不在同一个区域。
- dds实例与ecs不在同一个子网。
排查思路
- 检查dds实例与ecs是否在同一个区域、同一个安全组和子网内。
- 登录dds控制台,单击实例名称,在基本信息页面查看dds实例所在的区域、vpc、安全组和子网信息。
图1 查看dds实例网络信息
- 登录弹性云服务器控制台,单击云服务器名称,在基本信息页面,查看当前ecs所在的区域、vpc、安全组和子网信息。
图2 查看ecs网络信息
- 登录dds控制台,单击实例名称,在基本信息页面查看dds实例所在的区域、vpc、安全组和子网信息。
- 检查实例的端口是否正确,并通过curl命令检查端口是否可用。
- 单击实例名称,在基本信息页面查看当前实例的端口信息。
图3 查看实例端口
- 通过curl命令确认端口是否可用,示例:
curl 192.168.1.6:8635
提示“it looks like you are trying to access mongodb over http on the native driver port.”表示可以正常连接该ip地址,且8635端口可以正常通信。
图4 回显信息
- 单击实例名称,在基本信息页面查看当前实例的端口信息。
处理方法
- 选择和dds实例处于同一个区域、vpc和子网的ecs进行连接。或者可以绑定弹性公网ip,通过公网连接实例。
- 确保输入的端口信息和控制台查看的实际端口信息一致。
背景知识
- 内网连接实例时,需要ecs与待连接的dds实例的区域、vpc子网和安全组需要一致。
- 内网无法连接实例时,也可以绑定弹性公网ip,通过公网方式连接实例。
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨