还是mysql 远程连接惹的祸.
问题回顾:
mysql 在服务器直接通过IP地址访问不了数据库,远程还能访问数据库,通过 localhost可以访问。 最后查询发现是因为 服务器的 SELinux 被开启了(官方都建议关闭的东东)。
本次问题:
本次重装了个虚拟机,发现又是mysql远程连接问题,我放测试程序直接在服务器用IP地址访问,可以访问到,远程工具连接数据库发现连接不了,奇怪了,mysql远程跟我干上了哈。
1、我先查 host文件 看看有没有指定IP 本地 cat /etc/host 除了127.0.0.1 我也加入服务器对应IP 地址。限定访问渠道 直接通过IP 缩短访问时间,发现不行。
2、我又查询了SELinux 发现也已经关闭了,奇怪了,而且上传探针程序发现效果不一样,服务器上可以通过IP 和 localhost 同时访问,唯独远程连接工具不行(前提我确认我有远程连接账号)
3、我考虑到是防火墙问题,我查看防火墙发现 哦 原来 没有3306 端口啊。
本次事件 让我对 linux防火墙 又多认识一点,就是限制外部访问服务器内部程序的屏障,这个屏障上给你开那扇门你就能通过,不开你就通不过啊,很通俗。
Linux的防火墙叫iptables,配置文件在/etc/sysconfig里面,我依次进行了如下操作:
#vi /etc/sysconfig/iptables
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
封单个IP的命令是:
iptables -I INPUT -s 211.1.0.0 -j DROP
封IP段的命令是:
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP
封整个段的命令是:
iptables -I INPUT -s 211.0.0.0/8 -j DROP
封几个段的命令是:
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP
解封的话:
iptables -D INPUT -s IP地址 -j REJECT
iptables -F 全清掉了
标签:
上一篇:
Apache 安全配置方法--转载收藏 下一篇:
LAMP 环境集成包安装最新---lanmp_wdcp_v2.4快速安装RPM包发布