I'm Aron

Linux网络、进程与系统资源排查常用命令

1286 字
6 分钟
Linux网络、进程与系统资源排查常用命令

IP 地址基础#

IPv4 地址通常是类似下面这样的格式:

192.168.1.10

每一段的范围是 0255

几个特殊地址需要记住:

地址含义
127.0.0.1本机回环地址,只代表当前机器
localhost通常解析到 127.0.0.1
0.0.0.0在服务监听中常表示监听所有网卡

例如服务监听 127.0.0.1:8080,通常只能本机访问;监听 0.0.0.0:8080,其他机器才可能通过服务器 IP 访问。

查看 IP 地址#

老系统常用:

Terminal window
ifconfig

如果提示命令不存在,可以安装 net-tools,或者使用更现代的命令:

Terminal window
ip addr

简写:

Terminal window
ip a

查看默认路由:

Terminal window
ip route

主机名#

查看主机名:

Terminal window
hostname

设置主机名:

Terminal window
hostnamectl set-hostname 新主机名

主机名常用于区分多台服务器,比如:

web-01
web-02
db-01

测试网络连通:ping#

ping 用于测试网络是否连通。

Terminal window
ping 目标地址

限制次数:

Terminal window
ping -c 4 baidu.com
ping -c 4 192.168.1.1

如果 IP 能 ping 通,域名不能 ping 通,可能是 DNS 问题。如果都不通,可能是网络、网关、防火墙或目标机器问题。

下载和接口测试:curl#

curl 常用于测试 HTTP 接口。

Terminal window
curl http://127.0.0.1:8080

查看响应头:

Terminal window
curl -I https://example.com

发送 POST 请求:

Terminal window
curl -X POST http://127.0.0.1:8080/api

排查 Web 服务时,常见顺序是:

  1. systemctl status 服务名
  2. netstatss 查看端口是否监听
  3. curl 127.0.0.1:端口 测试本机访问
  4. 从其他机器访问服务器 IP 和端口

查看端口占用:netstat 和 ss#

老系统常用 netstat

Terminal window
netstat -anp | grep 端口

例如:

Terminal window
netstat -anp | grep 8080

现代系统更推荐 ss

Terminal window
ss -lntp
ss -lntp | grep 8080

常见选项含义:

选项含义
-l只看监听端口
-n不解析服务名,直接显示数字端口
-tTCP
-uUDP
-p显示进程信息

如果端口没有监听,说明服务可能没启动或启动失败。如果端口已经被其他进程占用,新服务可能无法启动。

查看进程:ps#

查看全部进程:

Terminal window
ps -ef

配合 grep 过滤:

Terminal window
ps -ef | grep nginx
ps -ef | grep java

常见字段:

字段含义
UID进程所属用户
PID进程 ID
PPID父进程 ID
CMD启动命令

查看某个进程的详细状态:

Terminal window
ps -p PID -f

结束进程:kill#

结束进程:

Terminal window
kill PID

强制结束:

Terminal window
kill -9 PID

建议优先使用普通 kill,让进程有机会正常退出。kill -9 是强制终止,可能导致临时文件、锁文件或数据状态来不及清理。

实时查看系统状态:top#

top 可以实时查看系统运行状态。

Terminal window
top

重点关注:

指标说明
load average系统负载
CPU 使用率用户态、系统态、空闲比例
Mem内存使用情况
Swap交换分区使用情况
PID进程 ID
%CPU进程 CPU 占用
%MEM进程内存占用

常用快捷键:

按键作用
P按 CPU 占用排序
M按内存占用排序
q退出

如果某个进程 CPU 或内存异常高,可以记录 PID,再结合日志继续排查。

查看磁盘占用:df 和 du#

查看磁盘分区使用情况:

Terminal window
df -h

-h 表示用人类易读的单位显示。

查看目录大小:

Terminal window
du -sh 目录

查看当前目录下各文件和子目录大小:

Terminal window
du -sh *

磁盘满了时,常见排查路径:

Terminal window
df -h
cd /var
du -sh *
cd /var/log
du -sh *

逐层定位哪个目录占用最大。

查看磁盘和 CPU IO:iostat#

iostat 可以查看 CPU 和磁盘 IO 情况,常用于排查磁盘读写压力。

Terminal window
iostat
iostat -x 1

如果系统没有该命令,CentOS 可安装:

Terminal window
yum install -y sysstat

查看网络统计:sar#

sar 也来自 sysstat 工具包,可以查看网络、CPU、内存等历史统计。

查看网络设备统计:

Terminal window
sar -n DEV 1

查看 TCP 统计:

Terminal window
sar -n TCP 1

sar 更偏系统性能分析,入门阶段先知道它能查看历史和实时统计即可。

固定 IP 配置思路#

在虚拟机或服务器中配置固定 IP,通常涉及两部分:

  1. 虚拟化平台或云平台的网络配置。
  2. Linux 系统内部网卡配置。

CentOS 7 常见配置文件:

Terminal window
/etc/sysconfig/network-scripts/ifcfg-ens33

核心配置示例:

BOOTPROTO="static"
ONBOOT="yes"
IPADDR="192.168.88.131"
NETMASK="255.255.255.0"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"

配置后通常需要重启网络服务或重启机器。不同发行版网络配置方式差异较大,实际操作前要确认系统版本。

常见排查套路#

服务访问不了时:

Terminal window
systemctl status 服务名
ps -ef | grep 服务关键字
ss -lntp | grep 端口
curl http://127.0.0.1:端口
ping 目标IP

机器变慢时:

Terminal window
top
df -h
free -h
iostat -x 1

日志异常时:

Terminal window
tail -f app.log
grep -n "ERROR" app.log

本篇命令速查#

命令作用
ip addr查看 IP 地址
hostname查看主机名
hostnamectl set-hostname设置主机名
ping -c 4 地址测试连通性
curl URL测试 HTTP 请求
netstat -anp查看网络连接和端口
ss -lntp查看监听端口
ps -ef查看进程
kill PID结束进程
top实时查看系统状态
df -h查看磁盘分区占用
du -sh *查看目录大小
iostat -x 1查看磁盘 IO
sar -n DEV 1查看网络统计

评论区

文章目录