Linux系统之nethogs工具的基本使用
【摘要】 Linux系统之nethogs工具的基本使用
一、nethogs简介
nethogs
是一个针对 Linux 系统的简单的小工具,用于监控网络流量。它不像其他一些网络监控工具那样提供详细的统计信息,而是专注于显示每个进程的上传和下载带宽使用情况。这使得nethogs
成为排查哪个应用程序正在使用大量带宽的理想选择。
二、安装 nethogs
在大多数基于 Debian 或 Ubuntu 的系统上,你可以通过以下命令安装 nethogs
:
sudo apt-get update
sudo apt-get install nethogs
对于基于 Red Hat、CentOS 或 Fedora 的系统,可以使用 yum
或 dnf
:
sudo yum install nethogs
# 或者对于使用 dnf 的较新版本
sudo dnf install nethogs
如果你使用的是 Arch Linux 及其衍生版本,你可以用 pacman
来安装:
sudo pacman -S nethogs
三、 nethogs使用帮助
3.1 查询help帮助信息
使用 --help选项,查询nethogs帮助信息
root@jeven01:~# nethogs --help
nethogs: invalid option -- '-'
usage: nethogs [-V] [-h] [-b] [-d seconds] [-v mode] [-c count] [-t] [-p] [-s] [-a] [-l] [-f filter] [-C][device [device[device ...]]]
-V : prints version.
-h : prints this help.
-b : bughunt mode - implies tracemode.
-d : delay for update refresh rate in seconds. default is 1.
-v : view mode (0 = KB/s, 1 = total KB, 2 = total B, 3 = total MB, 4 = MB/s, 5 = GB/s). default is 0.
-c : number of updates. default is 0 (unlimited).
-t : tracemode.
-p : sniff in promiscious mode (not recommended).
-s : sort output by sent column.
-l : display command line.
-a : monitor all devices, even loopback/stopped ones.
-C : capture TCP and UDP.
-f : EXPERIMENTAL: specify string pcap filter (like tcpdump). This may be removed or changed in a futureversion.
device : device(s) to monitor. default is all interfaces up and running excluding loopback
When nethogs is running, press:
q: quit
s: sort by SENT traffic
r: sort by RECEIVE traffic
l: display command line
m: switch between total (KB, B, MB) and throughput (KB/s, MB/s, GB/s) mode
3.2 帮助解释
命令行选项:
选项 | 描述 |
---|---|
-V |
打印版本信息。 |
-h |
打印此帮助信息。 |
-b |
错误排查模式 - 启用跟踪模式。 |
-d 秒数 |
设置更新刷新延迟的时间,单位为秒,默认是1秒。 |
-v 模式 |
视图模式(0 = KB/s, 1 = 总KB, 2 = 总B, 3 = 总MB, 4 = MB/s, 5 = GB/s),默认是0。 |
-c 数量 |
更新次数,默认是0(无限制)。 |
-t |
跟踪模式。 |
-p |
在混杂模式下嗅探(不推荐)。 |
-s |
按发送列排序输出。 |
-l |
显示命令行。 |
-a |
监控所有设备,包括环回/停止的接口。 |
-C |
捕获 TCP 和 UDP 流量。 |
-f 过滤器 |
实验性:指定字符串形式的 pcap 过滤器(类似 tcpdump)。该功能可能在未来版本中移除或更改。 |
device |
需要监控的网络设备,默认是所有处于运行状态的接口,排除环回接口。 |
运行时快捷键:
快捷键 | 功能 |
---|---|
q |
退出程序。 |
s |
按发送流量排序。 |
r |
按接收流量排序。 |
l |
显示命令行。 |
m |
切换显示模式,总流量(KB, B, MB)和吞吐量(KB/s, MB/s, GB/s)之间切换。 |
四、nethogs的基本使用
要以每5秒刷新一次的速度监控 enp6s18
接口,并且以 MB/s 显示带宽使用情况,你可以这样运行:
nethogs -d 5 -v 3 enp6s18
标题
- NetHogs version 0.8.6-3:
nethogs
的版本号。
列标题
- PID: 进程 ID。
- USER: 用户名。
- PROGRAM: 程序或进程名称。
- DEV: 网络设备(接口)。
- SENT: 发送的数据量(MB)。
- RECEIVED: 接收的数据量(MB)。
数据行
-
PID 112719:
- USER: root
- PROGRAM: sshd: root@pts/0
- DEV: enp6s1
- SENT: 0.052 MB
- RECEIVED: 0.020 MB
-
未知进程:
- USER: root
- PROGRAM: unknown TCP
- DEV: enp6s1
- SENT: 0.000 MB
- RECEIVED: 0.000 MB
总计
- TOTAL: 0.001 MB 发送,0.000 MB 接收。
分析
- sshd: 这是一个 SSH 守护进程,通常用于远程登录和文件传输。它发送了 0.052 MB 的数据,接收了 0.020 MB 的数据。
- unknown TCP: 这是一个未知的 TCP 连接,可能是由于某些临时连接或未识别的进程导致的。当前没有发送或接收任何数据。
五、注意事项
- 使用
nethogs
时需确保以 root 权限或通过sudo
执行,以便能够访问所有进程的网络统计信息。 - 监控特定网络接口流量时,请确认该接口名称正确无误,避免监控错误的数据。
- 在启动
nethogs
前安装必要的依赖库,如 libpcap,以保证工具正常运行。 - 切勿在生产环境中启用混杂模式(-p 参数),因为这可能带来安全风险并影响性能。
- 当使用
-f
参数指定 pcap 过滤器时,请注意这是实验性功能,可能在未来的版本中有所变化或被移除。 - 如果遇到
nethogs
无法识别非 TCP/UDP 流量的问题,可以尝试添加-C
参数来捕获这些流量。 - 为了获得最佳的实时监控效果,建议不要设置过长的刷新间隔(-d 参数)。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)