lnmp集成安装后,即使关闭了服务器防火墙,mysql依然不能远程连接。因为lnmp默认添加了iptables规则,禁止了远程访问3306,6379端口。
root@iZjr5oba73m1ygZ:/usr/local/nginx/conf# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6379
通过命令可以看出,3306,6379端口的target状态是DROP的。如果需要开启远程访问,则需要将该状态设为ACCEPT,然后重启防火墙。
因为在ubuntu中我使用service iptables restart找不到服务。因此我大胆的使用了iptables --flush命令,删除了所有的iptables-rule;
root@iZjr5oba73m1ygZ:/usr/local/nginx/conf# iptables --flush
root@iZjr5oba73m1ygZ:/usr/local/nginx/conf# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
可见,iptables规则列表已经被我清空了,mysql也连接成功。
同样,redis也可以远程连接成功。
本文介绍了在LNMP环境中遇到MySQL无法远程连接的问题及其解决方法。由于默认iptables规则阻止了3306端口的访问,文章详细展示了如何通过修改iptables规则来实现MySQL及Redis的远程访问。
742

被折叠的 条评论
为什么被折叠?



