远程连接到 MySql 已被 IPTABLES 阻止
Remote Connect to MySql Blocked by IPTABLES
我通过互联网进行了搜索,特别是在这里,但找不到解决我的问题的方法。
我最接近的如下,但检查我的 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 服务器。自从重建后,它不再有效。
防火墙设置正确,可以接受来自我的 IP 的连接,拒绝来自所有其他外部的连接
数据库服务器也设置为接受来自我的 IP 的连接,拒绝来自其他外部的所有连接
数据库用户拥有连接的全部权限,并且对凭据进行了三重检查
使用 # iptables -L -x -v -n 检查 iptables 给出以下内容:
链输入(策略丢弃 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 'Unknown error')
表示网络连接被拒绝。
问题:iptables 中规则的顺序重要吗?即,DROP 是否超越了 ACCEPT,因为它排在第二位?
感谢您提前提供任何信息或建议!
编辑:运行 CENTOS 7(64 位)并使用 Plesk Obsidian(并通过 SSH 连接)
感谢 Cascader,提示有效。
在 my.cnf 文件中是:
绑定地址=::ffff:127.0.0.1
我把它改成0.0.0.0然后重启服务器就可以访问了
感谢评论,谢谢!
我通过互联网进行了搜索,特别是在这里,但找不到解决我的问题的方法。
我最接近的如下,但检查我的 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 服务器。自从重建后,它不再有效。
防火墙设置正确,可以接受来自我的 IP 的连接,拒绝来自所有其他外部的连接
数据库服务器也设置为接受来自我的 IP 的连接,拒绝来自其他外部的所有连接
数据库用户拥有连接的全部权限,并且对凭据进行了三重检查
使用 # iptables -L -x -v -n 检查 iptables 给出以下内容:
链输入(策略丢弃 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 'Unknown error')
表示网络连接被拒绝。
问题:iptables 中规则的顺序重要吗?即,DROP 是否超越了 ACCEPT,因为它排在第二位?
感谢您提前提供任何信息或建议!
编辑:运行 CENTOS 7(64 位)并使用 Plesk Obsidian(并通过 SSH 连接)
感谢 Cascader,提示有效。
在 my.cnf 文件中是:
绑定地址=::ffff:127.0.0.1
我把它改成0.0.0.0然后重启服务器就可以访问了
感谢评论,谢谢!