应急响应必备工具 iotop 与 netstat 工具使用指南

iotop 与 netstat 工具使用指南

在应急响应中,可以通过 netstat 排查业务,或者针对反弹,监听等进行审查,通过iotop 命令可以快速定位可疑的业务,矿,反弹shell等

一、iotop:磁盘 I/O 实时监控工具

iotop 是类 top 的磁盘 I/O 专用监控工具,可实时查看进程/线程的读写速率、I/O 使用率等关键信息,适用于定位磁盘占用过高的进程。

1. 安装准备

步骤1:更新软件包索引

1
sudo apt-get update  # 更新本地软件包列表,确保安装最新版本

步骤2:安装 iotop

1
sudo apt install -y iotop  # -y 自动确认安装,无需手动交互

安装成功界面:
iotop安装成功界面

2. 核心用法

(1)默认交互式启动

1
sudo iotop  # 需 root 权限,进入实时监控界面

监控界面展示:
iotop默认监控界面

(2)常用参数说明(表格更清晰)

参数 作用描述
-o 仅显示有 I/O 活动的进程/线程(过滤空闲进程)
-b 批量模式(非交互式),用于日志记录或脚本分析
-n N 指定刷新次数(N 为数字),例:-n 5 刷新 5 次后退出
-d S 指定刷新间隔(S 为秒数,默认 1 秒),例:-d 3 每 3 秒刷新
-P 仅显示进程级 I/O 信息(不展示线程详情)
-k 以 KB/s 为单位显示速率(默认 B/s)
-a 显示进程启动以来的累计 I/O 总量(而非实时速率)
-p PID 仅监控指定 PID 的进程,例:-p 1234 只看 PID=1234 的进程

(3)常用场景示例

  • 仅监控活跃 I/O 进程(最常用):

    1
    sudo iotop -o

    效果展示:
    iotop -o 模式监控活跃进程

  • 批量记录 10 次 I/O 日志(保存到文件):

    1
    sudo iotop -b -n 10 -k > iotop_log.txt  # -k 以 KB/s 记录,输出到日志文件
  • 监控指定进程的实时 I/O:

    1
    sudo iotop -p 8080 -d 2  # 每 2 秒刷新,仅看 PID=8080 的进程

二、netstat:经典网络状态监控工具

netstat 是 Linux 系统核心网络工具,用于查看 TCP/UDP 连接、监听端口、路由表、网络接口统计等,是排查网络连接、端口占用的必备工具。

1. 安装准备

netstat 属于 net-tools 工具集,Ubuntu 默认未预装,需手动安装:

1
sudo apt install -y net-tools  # 安装完整网络工具集

安装成功界面:
net-tools安装成功界面

2. 核心参数说明

参数 作用描述
-t 仅显示 TCP 协议相关连接/端口
-u 仅显示 UDP 协议相关连接/端口
-a 显示所有连接(包括监听态和已建立连接)
-n 以 IP:端口 格式显示(跳过 DNS 解析,速度更快)
-l 仅显示处于监听状态的端口/连接
-p 显示连接对应的进程 PID 及程序名(需 root 权限)

3. 实战场景用法

(1)查看系统开放的所有监听端口(TCP+UDP)

应急响应、业务探测常用,快速了解系统暴露的端口:

1
netstat -tuln  # 组合参数:t(TCP)+u(UDP)+l(监听)+n(IP格式)

效果展示:
查看所有监听端口

(2)单独查看 TCP/UDP 监听端口

  • TCP 监听端口(常用,如 Web 服务、SSH 等):

    1
    netstat -tln  # t(TCP)+l(监听)+n(IP格式)

    效果展示:
    查看TCP监听端口

  • UDP 监听端口(如 DNS、NTP 等服务):

    1
    netstat -uln  # u(UDP)+l(监听)+n(IP格式)

    效果展示:
    查看UDP监听端口

(3)查看所有已建立的 TCP 连接

1
netstat -tn  # t(TCP)+n(IP格式),不显示监听态,仅看已连接

效果展示:
查看已建立TCP连接

(4)探测指定端口是否被占用

排查端口冲突常用,以 80 端口(HTTP 服务)为例:

1
netstat -tuln | grep :80  # 过滤包含 ":80" 的端口记录

效果展示(若 80 端口被占用则显示对应监听信息):
探测80端口占用情况

4. 常用参数组合速查

需求场景 命令
快速查看所有监听端口 netstat -tuln
查看 TCP 已建立连接 netstat -tn
定位端口占用进程 `sudo netstat -tulnp
查看 UDP 监听端口 netstat -uln
显示所有网络连接(含进程) sudo netstat -tuanp