Linux系统之nethogs工具的基本使用

举报
江湖有缘 发表于 2025/02/27 00:06:31 2025/02/27
42 0 0
【摘要】 Linux系统之nethogs工具的基本使用

在这里插入图片描述

一、nethogs简介

nethogs 是一个针对 Linux 系统的简单的小工具,用于监控网络流量。它不像其他一些网络监控工具那样提供详细的统计信息,而是专注于显示每个进程的上传和下载带宽使用情况。这使得 nethogs 成为排查哪个应用程序正在使用大量带宽的理想选择。

二、安装 nethogs

在大多数基于 Debian 或 Ubuntu 的系统上,你可以通过以下命令安装 nethogs

sudo apt-get update
sudo apt-get install nethogs

对于基于 Red Hat、CentOS 或 Fedora 的系统,可以使用 yumdnf

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)。

数据行

  1. PID 112719:

    • USER: root
    • PROGRAM: sshd: root@pts/0
    • DEV: enp6s1
    • SENT: 0.052 MB
    • RECEIVED: 0.020 MB
  2. 未知进程:

    • 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 连接,可能是由于某些临时连接或未识别的进程导致的。当前没有发送或接收任何数据。

五、注意事项

  1. 使用 nethogs 时需确保以 root 权限或通过 sudo 执行,以便能够访问所有进程的网络统计信息。
  2. 监控特定网络接口流量时,请确认该接口名称正确无误,避免监控错误的数据。
  3. 在启动 nethogs 前安装必要的依赖库,如 libpcap,以保证工具正常运行。
  4. 切勿在生产环境中启用混杂模式(-p 参数),因为这可能带来安全风险并影响性能。
  5. 当使用 -f 参数指定 pcap 过滤器时,请注意这是实验性功能,可能在未来的版本中有所变化或被移除。
  6. 如果遇到 nethogs 无法识别非 TCP/UDP 流量的问题,可以尝试添加 -C 参数来捕获这些流量。
  7. 为了获得最佳的实时监控效果,建议不要设置过长的刷新间隔(-d 参数)。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。