【问题标题】:MySQL/MariaDB Binding Address Server Public Address Or :: or 0.0.0.0?MySQL/MariaDB绑定地址服务器公共地址还是::还是0.0.0.0?
【发布时间】:2017-09-09 19:55:28
【问题描述】:

作为序言,我开发了自己的 CRM(类似于 SalesForce 或 SAP),其“规模”要低得多,因为它面向的是服务,而不是销售。我在 Ubuntu 16.04 服务器上使用 MySql 或 MariaDB(现在首选)来保存所有数据。 我一直使用 MySQL 或 MariaDB 服务器 公共 IP 地址 作为 my.cnf 中的绑定地址,并且多年来一直运行良好。但有时它只是停止允许来自外部世界的通信(它允许本地连接),当它这样做时它不再允许外部连接,直到我将绑定 IP 更改为 0.0.0.0 或:: 然后一切正常。所以问题是,会发生什么?我也有点担心使用 0.0.0.0 (ipv4) 或:: (ipv6) 作为绑定地址,因为我不确定是否有更高的安全性这样做有风险。

我确实运行了 Master 到 Master 的连接,而第二个 Master 确实将公共地址作为绑定地址,并且工作正常。

Ubuntu 内部防火墙被禁用,因为我依赖另一个防火墙。我已禁用此防火墙几秒钟以进行测试,但问题仍然存在。我确实在 Linux 上使用了 Fail2Ban,但没有任何内容被阻止。

你们认为可能导致行为变化的原因是什么(不允许外部连接)? 使用公共 IP 地址作为绑定地址有什么好处吗? 使用 0.0.0.0 作为绑定地址而不是服务器公共地址有什么风险?

使用 :: 比使用 0.0.0.0 更好吗?有什么好处?

提前致谢!

【问题讨论】:

    标签: mysql mariadb


    【解决方案1】:

    检查你的 mysql 数据库 User 和 Db 表。您必须为您尝试访问的外部 IP 提供适当的 GRANT。您将需要类似的东西

    GRANT ALL ON <database>.* TO 'externaluser'@'external_ip' IDENTIFIED BY 'whatever';
    

    否则 MySQL 将不允许访问

    【讨论】:

    • 雅克·阿马尔,感谢您的回答。我多年来一直使用同一个用户的系统,它突然停止。当然,几年前我已经完成了您的建议,user@ServerPublicIP 拥有所有权限。是的,我确实重新检查了仍然完好无损的用户及其权限。因此,疑问仍然存在,这是怎么回事?并且还使用 0.0.0.0 作为绑定地址危险吗?
    • 重新阅读您的原始帖子,我很困惑。你在 NAT 防火墙后面吗?外网IP和内网IP不一样吗?
    • 是的,在这种情况下,我在 NAT 路由器后面。这是我的测试服务器。
    • 需要互联网服务器图表以了解:机器(内部 IP)防火墙(使用的 NAT 类型,即一对一 NAT 或仅 PAT 以及防火墙如何处理 3306)/外部 IP。你附加到你的外部 IP 对我来说很奇怪。每台机器都应该绑定到内部 IP,防火墙/NAT 应该处理转换。绑定到错误的 IP 将使得只有本地连接有效,绑定到 0.0.0.0 意味着绑定到所有接口/IP
    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 2019-08-19
    • 2011-04-02
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多