3306端口巨坑,没有开启防火墙,但是防火墙规则还是起效了!

今天远程访问Ubuntu上的MySQL时出现错误: 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.49' (60)

所以先登录服务器,用命令netstat -tuln查看一下:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:3306            0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN ...

可以看出,MySQL配置应该没问题的,当然也确保MySQL用户密码等都是对的。

查了半天,怀疑是不是iptables问题(但记不得之前曾经配置过iptables,所以一直没想这块): 
sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  -- anywhere anywhere tcp dpt:http ACCEPT tcp -- localhost anywhere tcp dpt:mysql DROP tcp -- anywhere anywhere tcp dpt:mysql ACCEPT tcp -- anywhere anywhere tcp dpt:mysql ACCEPT tcp -- 192.168.1.0/24 anywhere tcp dpt:mysql Chain FORWARD (policy ACCEPT) target prot opt source destination DOCKER all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain DOCKER (1 references) target prot opt source destination 

很奇怪这边怎么会有一个对mysql访问的DROP规则,但还是先删为敬! 
这次再iptables命令多加个参数: 
sudo iptables -L -n --line-number

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0 2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 4 ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:3306 5 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 7 ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0 tcp dpt:3306 Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 DOCKER all -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 

这下每条规则前都有了序号,所以可以根据序号直接来修改或删除:

sudo optables -D INPUT 5 
把INPUT的第五条规则删除,然后去客户端再次登录MySQL,成功!

虽然这个命令没有效果

我使用了

iptables -F
注意!清除规则是恢复到默认规则,如果默认规则为ACCEPT那就全是ACCEPT,如果默认规则是DROP的话,那就是全DROP了。

转载于:https://www.cnblogs.com/xiezhi/p/9103898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值