本文目录导读:

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 的平均值。
常见问题排查技巧
-
为什么全是内网 IP / 没有外部 IP?
- 你可能监控了错误的网卡(如
docker0),使用ip addr查看你的主网卡名称(通常是eth0,ens33,enp0s3等),然后用-i指定。
- 你可能监控了错误的网卡(如
-
为什么一开始很卡?
- 因为
iftop默认在做 DNS 反向解析。启动时务必加上-n。
- 因为
-
如何只看某个端口的流量?
iftop本身没有强大的过滤语法,可以配合grep或awk,iftop只输出到屏幕,没有-o输出选项,更推荐的做法是使用tcpdump抓包分析,或者用nethogs按进程查看。
-
如何只看某个 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 的哪个端口在消耗大量带宽,确认是否有异常连接或占用。
标签: 连接流量
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播