MongoDB MongoDB 配置 iptables 限制 ip 访问造成访问不稳定

mingmingpao · 2015年07月06日 · 最后由 cicero 回复于 2015年11月06日 · 8590 次阅读

我的服务器部署在阿里云上,系统是 Ubuntu Server 14.04,iptables 配置项如下(用的教程是http://blog.csdn.net/pang040328/article/details/19047573):

sudo iptables -I INPUT -p tcp --dport 27017 -j DROP
sudo iptables -I INPUT -s 127.0.0.1 -p tcp --dport 27017 -j ACCEPT
sudo iptables -I INPUT -s <my-server-ip> -p tcp --dport 27017 -j ACCEPT

结果造成数据库访问不稳定,有时访问出错,有时会访问速度较慢。

why?

真的需要配嘛?MongoDB 默认不就是只侦听本地 127.0.0.1 么?。。

#1 楼 @ericguo 真的需要,注意第三个命令。

想多了,出错不是 iptables 的事,楼主了解一下这 3 行规则到底是什么意思,就不知道为什么不会造成访问速度较慢或者不稳定了。

速度慢有 3 种可能:

  1. 你本机网络太慢
  2. 阿里云网络太慢
  3. 数据库负载太高

你依次排查。

#3 楼 @kgen 不过我执行了下列命令清除 iptables 的配置的时候,问题就没了。

sudo iptables -X
sudo iptables -F

1,2,3 我觉得都不成立的。关键在于经常抛出数据库连接不上的错误。

把你防火墙第一条规则移到最下面。 简单来说,iptables 首先执行 forward table,然后是 filter table,进入到 filter table 的时候,是从上往下依次匹配,遇到第一个匹配的就执行,停止下面的规则。 你第一条规则就把 tcp 的 27017 端口给封了,后面的当然不 work,换个顺序试试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号