MongoDB 防火墙配置实操指南
一 核心原则
二 常用防火墙配置示例
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<YOUR_IP>" port port="27017" protocol="tcp" accept'sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<YOUR_SUBNET>" port port="27017" protocol="tcp" accept'sudo firewall-cmd --permanent --add-port=27017/tcpsudo firewall-cmd --reloadsudo firewall-cmd --list-allsudo ufw allow from <YOUR_IP> to any port 27017 proto tcpsudo ufw allow from <YOUR_SUBNET> to any port 27017 proto tcpsudo ufw status verbosesudo iptables -I INPUT -p tcp -s <YOUR_IP> --dport 27017 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 27017 -j DROPiptables-save 或保存规则到配置文件。三 与 MongoDB 配置联动
net.bindIp 设为内网 IP 或内网网段(逗号分隔),避免使用 0.0.0.0。示例:
net: { port: 27017, bindIp: 192.168.1.10,127.0.0.1 }bindIp: 192.168.1.0/24,127.0.0.1security.authorization: enabled,并创建管理员与业务账号后再对外网开放。sudo systemctl restart mongod。四 云环境与安全组
五 验证与排错
ss -lntp | grep 27017 或 sudo firewall-cmd --query-port=27017/tcpnc -vz <SERVER_IP> 27017 或 telnet <SERVER_IP> 27017authorization,使用 mongo --host <IP> --port 27017 -u <user> -p <pwd> --authenticationDatabase admin 测试。bindIp 是否为内网地址、云安全组/本机防火墙是否同时放行、应用是否指向正确端口与 IP。