【问题标题】:Remote Connect to MySql Blocked by IPTABLES远程连接到被 IPTABLES 阻止的 MySql
【发布时间】:2020-07-21 16:56:09
【问题描述】:

我已经在互联网上进行了搜索,特别是在这里,但找不到解决我的问题的方法。

我最接近的是以下,但检查我的 iptables,它们似乎并不适用:

https://superuser.com/questions/1290353/iptables-blocking-remote-mysql-connection https://superuser.com/questions/791509/mysql-isnt-accepting-remote-connections

我有一个 STRATO 的虚拟服务器,这个东西上周被炸毁了,在经历了很多头痛和漫长的夜晚之后,我重新上线并重建了它。在它死之前,我能够使用 Navicat 远程连接到我的 MariaDb / MySQL 服务器。自重建以来,它不再起作用。

  1. 防火墙设置正确,可以接受来自我的 IP 的连接,拒绝来自所有其他外部的连接

  2. 数据库服务器也设置为接受来自我的 IP 的连接,拒绝来自其他外部的所有连接

  3. 数据库用户拥有连接的全部权限,并三次检查凭据

  4. 使用 # iptables -L -x -v -n 检查 iptables 得到以下结果:

    链输入(策略 DROP 0 个数据包,0 个字节)

    pkts      bytes target     prot opt in     out     source               destination
     947   225118 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
       0        0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp flags:!0x17/0x02 state NEW reject-with tcp-reset
     156     6296 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            state INVALID
       0        0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
      15      780 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8443
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8880
       4      192 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
      98     4096 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
       1       40 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21
       3      156 ACCEPT     tcp  --  *      *       x.x.x.x         0.0.0.0/0            tcp dpt:22
       0        0 ACCEPT     tcp  --  *      *       x.x.x.x         0.0.0.0/0            tcp dpt:22
      14      768 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:25
       1       60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:465
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:110
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:995
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:143
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:993
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:106
      15      780 ACCEPT     tcp  --  *      *       x.x.x.x         0.0.0.0/0            tcp dpt:3306
       0        0 ACCEPT     tcp  --  *      *       x.x.x.x         0.0.0.0/0            tcp dpt:3306
       1       40 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
       1       40 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:5432
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:9008
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:9080
       0        0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:137
       0        0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:138
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:139
     423    21880 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:445
       0        0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:1194
       0        0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
       0        0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
       4      202 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8 code 0
     297    13450 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0
    

(其中 x.x.x.x 是授权 IP 地址)

当我尝试使用 Navicat 登录时,我收到以下错误:

2003 - 无法连接到“xxx.xxx.xxx.xxx”上的 MySQL 服务器(10061“未知错误”)

表示网络连接被拒绝。

问题:iptables 中规则的顺序重要吗?即,DROP 是否会覆盖 ACCEPT,因为它排在第二位?

提前感谢您提供任何信息或建议!

编辑:运行 CENTOS 7(64 位)并使用 Plesk Obsidian(并通过 SSH 连接)

【问题讨论】:

  • 检查 netstat -nat 输出并验证 MySQL 是否确实在等待 TCP 连接。规则的顺序确实很重要,但您似乎做对了(在删除其他所有内容之前接受受信任的 IP)。
  • 谢谢,问题就在这里。它只在 tcp6 上监听 127.0.0.1:3306,现在要弄清楚如何让它在 tcp 上监听 3306 端口。
  • 在您的my.cnf 配置文件中搜索bind-address
  • 谢谢,这是我的下一步,今晚等客户睡着了再试试……(这是一个测试服务器)

标签: mysql port iptables


【解决方案1】:

感谢 Cascader,提示有效。

在 my.cnf 文件中是:

绑定地址 = ::ffff:127.0.0.1

我把它改成 0.0.0.0 然后重启服务器就可以访问了。

感谢cmets,谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多