MongoDB外网不能访问,修改配置

步骤 1:修改 MongoDB 绑定 IP

默认情况下,MongoDB 仅绑定本地 IP(127.0.0.1),需修改为 0.0.0.0 以允许所有 IP 访问。

  1. 找到配置文件

    • Linux 默认路径:/etc/mongod.conf
    • Windows 默认路径:<安装目录>\bin\mongod.cfg
  2. 修改 net.bindIp 配置

    net:
      port: 27017
      bindIp: 0.0.0.0  # 修改为 0.0.0.0 或指定服务器公网 IP
    
  3. 保存文件并重启 MongoDB 服务

    # Linux(Systemd)
    sudo systemctl restart mongod
    
    # Windows(服务管理器)
    在“服务”中找到 MongoDB,右键重启。
    

步骤 2:开放防火墙端口

确保服务器的防火墙允许 27017 端口的入站流量。

  1. Linux(以 UFW 为例)

    sudo ufw allow 27017/tcp
    sudo ufw reload
    
  2. Windows

    • 进入“控制面板 → Windows Defender 防火墙 → 高级设置”。
    • 新建入站规则,允许 TCP 端口 27017

步骤 3:配置云服务器安全组

如果使用云服务器(如 AWS、阿里云、腾讯云),需在控制台配置安全组规则:

  1. 允许来源 0.0.0.0/0(或指定 IP 段)访问 TCP:27017
  2. 应用安全组到 MongoDB 所在的服务器。

步骤 4:启用身份验证(强烈推荐)

开放外网前,务必启用 MongoDB 身份验证,避免未授权访问。

  1. 创建管理员用户

    use admin
    db.createUser({
      user: "admin",
      pwd: "your_password",
      roles: ["root"]
    })
    
  2. 启用认证
    修改配置文件,添加:

    security:
      authorization: enabled
    

    重启 MongoDB 服务。


步骤 5:测试外网连接

从外网机器使用 mongo 客户端或工具(如 MongoDB Compass)连接:

mongo "mongodb://<服务器公网IP>:27017" -u admin -p your_password --authenticationDatabase admin

或使用连接字符串:

mongodb://admin:your_password@<公网IP>:27017/admin?authSource=admin

常见问题排查

  1. 连接超时

    • 检查服务器防火墙和云安全组是否开放端口。
    • 使用 telnet <公网IP> 27017 测试端口连通性。
  2. 认证失败

    • 确认用户名、密码和认证数据库(authSource)正确。
    • 检查 MongoDB 日志(/var/log/mongodb/mongod.log)是否有错误。
  3. 配置未生效

    • 确保修改配置文件后重启了 MongoDB 服务。

安全建议

  • 避免长期开放 MongoDB 到公网,使用 VPN 或 SSH 隧道更安全。
  • 限制访问 IP 范围(如仅允许公司 IP)。
  • 定期更新 MongoDB 版本,修复已知漏洞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值