MongoDB默认监听在27017端口,因此需要在CentOS防火墙中开放此端口以允许外部访问。以下是如何在CentOS防火墙中配置MongoDB端口的步骤:
检查firewall-cmd状态:
sudo firewall-cmd --state
如果返回running,则表示防火墙正在运行。
查看当前开放的端口:
sudo firewall-cmd --list-all
添加MongoDB端口:
sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
这里的--permanent选项表示永久生效,--zone=public表示在公共区域开放端口,--add-port=27017/tcp表示添加TCP协议的27017端口。
重新加载防火墙配置:
sudo firewall-cmd --reload
验证端口是否开放:
sudo firewall-cmd --list-all
确认27017/tcp出现在列表中。
添加规则:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
保存规则:
CentOS 7及以上版本使用firewalld,所以不需要手动保存iptables规则。如果是CentOS 6或其他使用iptables的系统,可以使用以下命令保存规则:
sudo service iptables save
重启防火墙服务(如果需要):
sudo service iptables restart
安全性:开放MongoDB端口可能会带来安全风险,建议只允许特定IP地址访问MongoDB。可以使用firewall-cmd的--add-rich-rule选项来实现:
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="27017" accept'
这里的source address="192.168.1.100"表示只允许来自192.168.1.100的访问。
SELinux:如果启用了SELinux,可能还需要配置SELinux策略以允许MongoDB监听在非默认端口。可以使用以下命令:
sudo setsebool -P mongod_can_network on
通过以上步骤,您可以在CentOS防火墙中配置MongoDB端口,确保MongoDB服务能够正常工作并允许外部访问。