侧边栏壁纸
博主头像
冰原 博主等级

不念过去,不畏将来。

  • 累计撰写 7 篇文章
  • 累计创建 9 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux和Windows Server服务故障排查方法

南乔
2023-10-22 / 0 评论 / 0 点赞 / 79 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2023-10-22,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、前言

在企业上云的过程中难免会遇到一些基础的故障(主要是端口不能通信部分),但是一时半会儿又想不起来具体是那些地方出现问题。本文将介绍企业上云时遇到的一些基础故障排查思路,有不足的地方还请及时指正。

二、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

三、结束语

至此排查步骤基础部分都差不多是这样去看,若有大佬要投稿,请在评论区留言~

0

评论区