iftop如何查看连接流量

联启 网络工具 16

本文目录导读:

iftop如何查看连接流量-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 安装 iftop
  2. 基本使用:启动并查看流量
  3. 常用参数(启动时指定)
  4. 界面交互操作(运行时按下)
  5. 如何解读输出结果(实战示例)
  6. 常见问题排查技巧

iftop 是一个非常实用的实时网络流量监控工具,它主要用来查看本机与外部主机之间的具体连接流量,而不是像 nload 那样只看总带宽。

以下是使用 iftop 查看连接流量的详细步骤和常用操作:

安装 iftop

大多数 Linux 发行版可以通过包管理器直接安装:

  • Debian / Ubuntu:

    sudo apt update
    sudo apt install iftop
  • CentOS / RHEL / Fedora:

    # CentOS 7/8 需要先安装 EPEL 源
    sudo yum install epel-release
    sudo yum install iftop

基本使用:启动并查看流量

运行 iftop 需要 root 权限(因为它需要读取网卡原始数据):

sudo iftop

启动后,你会看到一个全屏的实时监控界面,它分为三个部分:

  • 顶部: 显示整体的带宽使用量(峰值、平均值、当前值)。
  • 中间(核心区域): 显示所有的连接列表
    • 左边: 本机 IP 和端口。
    • 右边: 对端 IP 和端口。
    • 中间: 箭头和速率。=> 表示发送(TX),<= 表示接收(RX)。
    • 最后三列: 分别显示 2秒、10秒、40秒 内的平均流量速率。
  • 底部: 统计汇总,包括总发送/接收量、峰值以及总数据量。

常用参数(启动时指定)

iftop 有一些非常实用的命令行选项,可以帮你筛选信息:

参数 作用 示例
-i 指定监控的网卡(默认是第一个,可能在 docker 或虚拟网桥上,需手动指定) sudo iftop -i eth0
-n 直接显示 IP,不进行 DNS 反向解析(强烈建议使用,否则会很慢) sudo iftop -n
-N 不解析端口号(直接显示端口数字,如 443,而不是显示 https) sudo iftop -N
-P 显示端口号(默认只显示主机名/IP,加上这个才能看到具体端口) sudo iftop -P
-B Bytes 为单位显示(默认是 bits,更容易混淆) sudo iftop -B
-F 显示特定网段的流量(如内网流量) sudo iftop -F 192.168.1.0/24

最常用的组合:

# 监控 eth0,显示 IP 和端口,以 Bytes 显示
sudo iftop -i eth0 -n -N -P -B

界面交互操作(运行时按下)

启动 iftop 后,你可以在界面中按以下快捷键切换视图:

按键 作用
n 切换 显示主机名 / 显示 IP 地址
s 切换 显示源主机 / 不显示
d 切换 显示目标主机 / 不显示
p 暂停/继续 刷新(方便截图或仔细看某一时刻的数据)
b 切换 是否显示图形化的流量条条
T 切换 是否显示连接总量(累计数据)
L 切换 是否显示刻度(Lines for scales)
j / k 上下滚动,翻看更多的连接(如果连接很多)
1 / 2 / 3 根据 1列(2秒)、2列(10秒)或 3列(40秒)的平均值排序
< 按 源地址 排序
> 按 目标地址 排序
t 切换 连接显示模式(发送/接收/总流量)
q 退出 iftop

如何解读输出结果(实战示例)

假设你执行了:

sudo iftop -i eth0 -n -N -P -B

你可能会看到类似这样的输出(示意):

                   12.5Kb                  25.0Kb              37.5Kb
└─────────────────┴──────────────────────┴──────────────────────
192.168.1.100:54321      =>  142.250.80.14:443         1.50KB  2.00KB  1.80KB
                          <=                             2.00KB  3.00KB  2.50KB
192.168.1.100:54322      =>  52.84.XX.XX:443           5.00KB  10.0KB  8.00KB
                          <=                             8.00KB  15.0KB  12.0KB
192.168.1.100:22         =>  10.0.0.5:54321            100KB   200KB   150KB
                          <=                             80KB    150KB   120KB
────────────────────────────────────────────────────────────────────────
TX:   cum: 500MB   peak: 150KB/s                rates:  106KB/s  212KB/s  161KB/s
RX:   cum: 400MB   peak: 170KB/s                rates:  90KB/s   188KB/s  144KB/s
TOTAL: cum: 900MB  peak: 310KB/s                rates:  196KB/s  400KB/s  305KB/s

解读:

  • 第一行168.1.100:54321 是你的本机IP和端口,=> 指向 250.80.14:443(Google 服务器)。
  • 第二行<= 表示从对方发回来的流量。
  • 数字50KB 2.00KB 1.80KB 分别代表最近 2秒、10秒、40秒 内的平均速率。
  • 底部汇总TX 发送,RX 接收。cum 是启动以来累计的总字节数,peak 是峰值速率,rates 是当前 2s/10s/40s 的平均值。

常见问题排查技巧

  1. 为什么全是内网 IP / 没有外部 IP?

    • 你可能监控了错误的网卡(如 docker0),使用 ip addr 查看你的主网卡名称(通常是 eth0, ens33, enp0s3 等),然后用 -i 指定。
  2. 为什么一开始很卡?

    • 因为 iftop 默认在做 DNS 反向解析。启动时务必加上 -n
  3. 如何只看某个端口的流量?

    • iftop 本身没有强大的过滤语法,可以配合 grepawkiftop 只输出到屏幕,没有 -o 输出选项,更推荐的做法是使用 tcpdump 抓包分析,或者用 nethogs 按进程查看。
  4. 如何只看某个 IP 的流量?

    • 启动时使用 -f 参数,即过滤器语法。sudo iftop -f "host 8.8.8.8"
  • 推荐启动命令: sudo iftop -i eth0 -n -N -P -B
  • 核心操作:j/k 翻页,按 1/2/3 排序,按 p 暂停。
  • 用途: 快速定位是哪个 IP 的哪个端口在消耗大量带宽,确认是否有异常连接或占用。

标签: 连接流量

抱歉,评论功能暂时关闭!