阿里云服务器 MongoDB 踩坑:无法配置外网IP

现象

  • 阿里云Ubuntu服务器
  • 刚刚安装完MongoDb

需要配置MongoDB外网的IP,进行了如下的操作:

  1. /etc/mongodb.conf进行配置:
bind_ip = 127.0.0.1,XXX.XXX.XXX.XXX(阿里云分配的服务器外网IP)
  1. 重启MongoDB的服务:
systemctl restart mongodb
  1. 检查MongoDB服务状态:
systemctl status mongodb

得到如下结果:

● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2020-01-20 20:55:39 CST; 49s ago
Docs: man:mongod(1)
Process: 599 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=48)
Main PID: 599 (code=exited, status=48)

启动失败:code=exited, status=48

  1. 查看MongoDB日志:
vim /var/log/mongodb/mongodb.log

可得如下错误日志:

ERROR: listen(): bind() failed errno:99 Cannot assign requested address for socket: XXX.XXX.XXX.XXX:27017

解决方案

  • 配置时使用阿里云分配的内网IP,而不是外网的IP。
  • 或者使用ip addr查看服务器具体的IP,使用这个IP进行配置。

出现Cannot assign requested address for socket: XXX.XXX.XXX.XXX:27017这种错误,一般是端口配置出错(如:端口被占用、端口没有开放)或者IP出错(如:所配置的IP并不是本机的IP)。在查看了防火墙等配置后,排除前者,那就是IP导致的问题了。

原因

在阿里云服务器管理控制台看到的外网IP并不是服务器真实的IP。

很可能是,外网IP的请求、数据由阿里云的网关等代理,从内网转发到具体的服务器:
数据 ==外网==> 阿里云代理 ==内网==> 服务器

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容