一、前言
在企业上云的过程中难免会遇到一些基础的故障(主要是端口不能通信部分),但是一时半会儿又想不起来具体是那些地方出现问题。本文将介绍企业上云时遇到的一些基础故障排查思路,有不足的地方还请及时指正。
二、Linux系统故障排查一般思路
2.1、服务端口不通,如HTTP、HTTPS、SSH等等端口不通的情况,一般来说有以下几个方向出现问题。
安全组规则未添加或配置了ACL访问限制(一般使用云服务器都会有安全组和ACL功能)
系统内防火墙未放行
服务未启动或未部署
服务故障
2.2、首先来说说安全组和ACL访问限制
安全组是经常在云服务器中使用的一个功能,一般都是用来控制云主机对应的端口访问限制的,当然除了可以设置TCP和UDP端口,还可以设置其他协议的安全组规则,比如ICMP协议,如果没有放行这个协议,就无法使用ping命令与云主机进行通信,也就是平时说的云主机禁ping操作。
安全组一般有入站规则和出站规则,一般来说对于访问云主机方向的流量是入站规则控制,对于从与主机访问其他资源方向的流量是出站规则控制。比如说我们现在需要访问云主机部署的WEB服务,一般需要放行安全组入方向规则的80端口或443端口。如果说需要从云主机访问其他的网站或下载其他的网站资源,就需要放行安全组出方向规则的80端口或443端口。其他端口访问规则同理。
2.3、系统内防火墙未放行导致端口访问不通
2.3.1、首先我们先确定系统内防火墙是否开启
1)Linux
# centos 6
service iptables status # 提示[FAIL]则未运行,提示[OK]则正在运行
# centos 7 or 8
systemctl status firewalld # 提示inactive则未运行,提示active则正在运行
# ubuntu or debian
ufw status # 提示inactive则未运行,提示active则正在运行
2)Windows Server
Windows 的防火墙查看方式就不再赘述了,一般来说在开始菜单中搜索防火墙即可找到。
2.3.2、如果查看系统防火墙是开启的则需要按以下步骤继续排查,反之则不用继续下面的步骤。
1)Linux
# Linux 通用命令
iptables -nL # 查看 Chain IN_public_allow 表里是否存在相应端口的防火墙规则
# centos 7 可使用 firewall-cmd 命令进行查看
firewall-cmd --list-all # 查看所有防火墙规则列表,查看其相应服务或端口是否开启
若查看防火墙是关闭状态,可以添加或者关闭防火墙
# centos 6
# --dport 80 是开启对应的目的端口,按实际所需进行更改。
# -p tcp 为协议参数 tcp/udp 等。
# -j ACCEPT 表示防火墙策略 ACCEPT(允许)/REJECT(拒绝)/DROP(丢弃)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables save # 保存配置的规则
service iptables restart # 重启防火墙生效
iptables -F # 清空防火墙规则
service iptables stop # 停止防火墙服务
chkconfig iptables off # 关闭防火墙开机自启
# centos 7 or 8
# --add-port=80/tcp 开启对应的端口,按实际所需进行更改。tcp为协议类型
# --zone=public 为生效区域
# --permanent 永久生效
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --reload # 重新加载防火墙规则
systemctl enable --now firewalld # 立即停止并关闭开机自启防火墙
# ubuntu or debian
ufw allow 80 # 添加允许80端口访问
ufw disable # 关闭防火墙
2)Windows Server
在开始菜单中搜索“防火墙”找到“高级防火墙”相关字样的设置,点开后我们查看下入站规则中是否放行了相应的服务。如果没有放行则添加对应的端口或者关闭防火墙即可。
3、服务未运行或未部署服务导致端口不能访问
1)Linux
# 使用netstat 命令查看服务端口监听状态
# 如报错 command not found 可执行这个命令安装此工具
# centos
yum install -y net-tools
# ubuntu or debian
apt install -y net-tools
netstat -ntlp # 查看TCP端口监听状态
netstat -nulp # 查看UDP端口监听状态
# 如查看端口是正在监听的,还需要注意个地方。
# 就是源IP是否监听的0.0.0.0/0网段,如果是监听的其他网段,那么只能对应的IP网段进行访问。
2)Windows Server
# Windows Server 同样有 netstat 命令,只是用法可能不太一样
netstat -ano | findstr ":80" # 查看80端口监听状态
# 如果没有出现任何反应,那么表示服务不在监听状态。
# 如果在监听状态,需查看源IP是否监听的0.0.0.0/0网段,如果是监听的其他网段,那么只能对应的IP网段进行访问。
4、服务故障
1)Linux
# 如果以上步骤都确认无误,那么很有可能是客户服务出现了故障。建议客户查看日志进行排查。
# 一般可查看客户的日志文件 /var/log/messages
cat /var/log/messages # 查看日志
# 如果看不懂日志,可以让百度帮你瞅瞅0.0
2)Windows Server
Windows Server 的日志,讲真,我也看不懂,我是彩笔T_T
三、结束语
至此排查步骤基础部分都差不多是这样去看,若有大佬要投稿,请在评论区留言~
评论区