lnmp无法远程连接mysql_Ubuntu 安装 LNMP 后无法远程连接 MYSQL

Ubuntu 16.0.4 下使用 一键安装 LNMP

wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.shlnmp

安装完成后使用 Navicat 连接一直报错 10060,但是用 SSH 可以连接。

原因是 LNMP 一键安装后没有安装防火墙,默认 3306 端口 DROP,请求连接后服务器丢弃数据造成连接请求超时。

解决方法:来自https://www.vpser.net/security/linux-iptables.html​www.vpser.net

1、安装 iptables 防火墙

如果没有安装 iptables 需要先安装,CentOS 执行:

yum install iptables -y

# CentOS7 需安装此 iptables 的 service 软件包

yum install iptables-services -y

CentOS 7上默认安装了 firewalld 建议关闭并禁用:

systemctl stop firewalld

systemctl mask firewalld

Debian/Ubuntu执行:

# 持久化 iptables 规则服务

apt-get install iptables -y

apt-get install iptables-persistent -y

2、清除已有 iptables 规则

iptables -F

iptables -X

iptables -Z

3、开放指定的端口

-A 和 -I 参数分别为添加到规则末尾和规则最前面。

# 允许本地回环接口(即运行本机访问本机)

iptables -A INPUT -i lo -j ACCEPT

# 允许已建立的或相关连的通行

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许所有本机向外的访问

iptables -A OUTPUT -j ACCEPT

# 允许访问 22 端口

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许访问 80 端口

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 允许访问 443 端口

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 允许 FTP 服务的 21 和 20 端口

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 20 -j ACCEPT

# 如果有其他端口的话,规则也类似,稍微修改上述语句就行

# 允许 ping

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# 禁止其他未允许的规则访问

iptables -A INPUT -j REJECT #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)

iptables -A FORWARD -j REJECT

4、屏蔽 IP

# 如果只是想屏蔽IP的话“3、开放指定的端口”部分设置可以直接跳过。

# 屏蔽单个 IP 的命令是

iptables -I INPUT -s 123.45.6.7 -j DROP

# 封整个段即从 123.0.0.1 到 123.255.255.254 的命令

iptables -I INPUT -s 123.0.0.0/8 -j DROP

# 封 IP 段即从 123.45.0.1 到 123.45.255.254 的命令

iptables -I INPUT -s 124.45.0.0/16 -j DROP

# 封 IP 段即从 123.45.6.1 到 123.45.6.254 的命令是

iptables -I INPUT -s 123.45.6.0/24 -j DROP

5、屏蔽或允许某 IP 访问指定端口

# 屏蔽某 IP 访问指定端口,以 22 端口为例命令是

iptables -I INPUT -s 123.45.6.7 -p tcp --dport 22 -j DROP

# 允许某 IP 访问指定端口,以 22 端口为例命令是

iptables -I INPUT -p tcp --dport 22 -j DROP

iptables -I INPUT -s 123.45.6.7 -p tcp --dport 22 -j ACCEPT

6、查看已添加的 iptables 规则

iptables -L -n

# v:显示详细信息,包括每条规则的匹配包数量和匹配字节数

# x:在 v 的基础上,禁止自动单位换算(K/M)

# n:只显示 IP 地址和端口号,不将 ip 解析为域名

7、删除已添加的 iptables 规则

# 将所有 iptables 以序号标记显示

iptables -L -n --line-numbers

# 要删除 INPUT 里序号为 8 的规则(要删除 OUTPUT 的话就改成 OUTPUT,以此类推)

iptables -D INPUT 8

8、iptables 的开机启动及规则保存

CentOS 上可能会存在安装好 iptables 后,iptables 并不开机自启动,可以执行一下:

chkconfig --level 345 iptables on

CentOS 7 可执行:

systemctl enable iptables

将其加入开机启动。

CentOS上可以执行:

service iptables save

保存规则。

另外更需要注意的是 Debian/Ubuntu 上 iptables 是不会保存规则的,也是前面说的持久化 iptables 规则。

Debian 或 Ubuntu 16.04 或更高版本执行:

/etc/init.d/netfilter-persistent save

可以进行保存规则,

/etc/init.d/netfilter-persistent reload

可以将规则生效。

Ubuntu 14.04 之前版本执行:

/etc/init.d/iptables-persistent save

可以进行保存规则,

/etc/init.d/iptables-persistent reload

可以将规则生效。

开机启动的话执行:

systemctl enable netfilter-persistent.service

systemctl enable iptables-persistent.service

这样就完成了 Debian 或 Ubuntu 下的关机自动保存规则,开机自动加载规则的设置。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值