linux firewall开放端口_Linux 下mongo端口27017的开放

最近在写一个个人的网站,前端差不多了,所以这两天在搞数据库

先按官网的流程走完了,Linux主机上可以进mongo了:

c47e6d0f0bed1890d20b9ea9eed111d3.png

然后心里想了一句这么顺利的吗,就在服务端用mongoose打算远程连一下数据库,看能不能连上。

本以为应该是秒连的,没想到过了一会给了个超时的错误:

02f3922fb947e5d1e7b0cd040fa3a2b9.png

第一反应是会不会是mongoose的配置有问题,因为主机上顺利地一批啊,就去官网看了下,加了一个配置项 socketTimeoutMS:6000000;

其实心里是觉得没什么D用的,果然,不靠谱。

然后查了一下,看有说法是需要把 mongod.conf 配置文件中的 bindIp 改成0.0.0.0

bindIp表示的是监听的ip地址段,默认是127.0.0.1,也就是localhost,不能被外界访问到,注释掉这句代码之后默认就是监听0.0.0.0也就是全部网段,由于是在局域网环境,可以这样简单设置保存(如果设置为某个具体的ip,则只有该ip能访问)

找到mongod.conf 文件,修改bindIp字段:

91b9b5eefb4912d2fb1dc7e80d45ec03.png

重启了服务后还是不行。

后来突然一想,超时大概率是端口访问不到没开放,于是远程telnet了一下27017端口,发现连接失败了,我又跑了一下8000端口(我页面是放在这个端口的),8000端口没问题

那问题根源应该就是这个了,所以一步步开始排查:

  • 先是在安全组里开放27017端口,再连 —— 还是不行;
  • lsof了一下主机的27017端口,是开放着的,那就只剩下防火墙了
  • firewall-cmd --query-port=27017/tcp 查看了一下,返现返回的是no,那就是被防火墙墙了,需要开个口子
  • firewall-cmd --permanent --add-port=27017/tcp ,进行27017端口的添加,返回了success
  • 重启一下服务器,firewall-cmd --query-port=27017/tcp 查看一下,返回yes,开启成功

满怀激动的心情,再远程连了一下,OK,收工。

顺带一提,如果过程重碰到了重启mongod失败的错误,应该就是目录权限的问题:

808d337f1c309a439b417a771923f5ed.png

跑一下这个命令就好了(原因暂时还未了解):

sudo 

最后写些感想,作为一名前端,这方面一开始碰到问题的时候真的就无从下手,头皮发麻。这不像前端,可以有html页面效果反馈,也不能打开控制台打断点看看哪里出了问题

你面对的,就只有一个黑漆漆的linux命令面板,这就对排查问题的能力有了要求。

喜欢看推理小说,这就和福尔摩斯说的一样:排除了所有不可能,剩下的就是真相。

最后,再过一个月左右吧,个人网站应该会上线,如果对搞一个自己的小天地有兴趣的到时候可以交流一下哦,知无不言!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值