linux nethogs网络监控程序(端口监控、流量监控、上传流量、下载流量、进程监控进程网络)

news2024/9/20 9:02:35

文章目录

    • Nethogs 网络监控程序详解
      • 1. 引言
      • 2. Nethogs 的安装与运行
        • 2.1 安装 Nethogs
          • - **Debian/Ubuntu**
          • - **Fedora**
          • - **Arch Linux**
        • 2.2 运行 Nethogs
      • 3. Nethogs 的使用详解
        • 3.1 基本界面
          • - **PID**:进程的 ID。
          • - **用户**:运行该进程的用户。
          • - **程序名**:进程的名称。
          • - **发送流量**:进程自启动以来上传的数据量。
          • - **接收流量**:进程自启动以来下载的数据量。
          • - **总流量**:总的数据流量(上传加下载)。
        • 3.2 命令行选项
          • - `-d`:设置刷新间隔,单位为秒。例如,`sudo nethogs -d 1` 每秒刷新一次。
          • - `-t`:使用文本模式输出,适合记录日志。
          • - `-p`:显示进程名而不是程序路径。
        • 3.3 示例:监控特定网络接口
      • 4. Nethogs 的实际应用
        • 4.1 网络流量异常监控(查到进程号后,可以用`ps -ef | grep <pid>`查看是哪个特定进程在占用网络流量)
        • 4.2 优化带宽使用
      • 5. 结语
    • Nethogs 网络监控进阶应用
      • 6. Nethogs 数据自动化与分析
        • 6.1 自动化数据收集
        • 6.2 数据分析示例
        • 6.3 实战测试
      • 7. 结合其他工具增强监控能力
        • 7.1 结合 Grafana 展示数据
        • 7.2 使用 Syslog 进行实时警报
      • 8. 结语

Nethogs 网络监控程序详解

1. 引言

Nethogs 是一款开源的网络流量监控工具,它与传统的网络监控工具有所不同,因为它按进程而不是按协议或子网进行流量监控。这使得用户可以直观地看到哪些特定程序正在使用带宽,从而帮助识别网络流量异常或不必要的带宽占用。

2. Nethogs 的安装与运行

2.1 安装 Nethogs

Nethogs 支持大多数 Linux 发行版,可以通过包管理器轻松安装。以下是几个常见发行版的安装命令:

- Debian/Ubuntu
sudo apt-get install nethogs

在这里插入图片描述

- Fedora
sudo dnf install nethogs
- Arch Linux
sudo pacman -S nethogs
2.2 运行 Nethogs

要启动 Nethogs,只需在终端中输入 sudo nethogs。这条命令会显示当前所有活跃进程的网络流量情况。
在这里插入图片描述

3. Nethogs 的使用详解

3.1 基本界面

启动 Nethogs 后,会看到一个实时更新的界面,展示了如下信息:
在这里插入图片描述

- PID:进程的 ID。
- 用户:运行该进程的用户。
- 程序名:进程的名称。
- 发送流量:进程自启动以来上传的数据量。
- 接收流量:进程自启动以来下载的数据量。
- 总流量:总的数据流量(上传加下载)。
3.2 命令行选项

Nethogs 支持多种命令行选项来定制其行为:

- -d:设置刷新间隔,单位为秒。例如,sudo nethogs -d 1 每秒刷新一次。
- -t:使用文本模式输出,适合记录日志。
- -p:显示进程名而不是程序路径。
3.3 示例:监控特定网络接口

如果只想监控特定的网络接口(如 eth0),可以使用:

sudo nethogs enp125s0f0

在这里插入图片描述

这将限制 Nethogs 的输出为仅显示通过 enp125s0f0 接口的流量。

4. Nethogs 的实际应用

4.1 网络流量异常监控(查到进程号后,可以用ps -ef | grep <pid>查看是哪个特定进程在占用网络流量)

通过定期检查 Nethogs 的输出,可以及时发现不寻常的网络活动。例如,如果发现某个通常很安静的后台进程突然开始使用大量带宽,这可能是一个安全风险的迹象,如恶意软件活动。

4.2 优化带宽使用

了解哪些进程在使用网络可以帮助优化带宽分配。例如,可能发现某个进程在非工作时间也在下载大文件,通过配置其工作时间,可以更有效地利用网络资源。

5. 结语

Nethogs 是一个功能强大且易于使用的工具,可以帮助系统管理员和普通用户监控和管理网络流量。通过实时的进程级流量监控,用户可以更好地理解网络活动,确保网络资源的合理使用。

在下一部分,将进一步探讨如何通过脚本自动化 Nethogs 的数据收集和分析,以及如何结合其他工具提升网络监控的效果。

Nethogs 网络监控进阶应用

6. Nethogs 数据自动化与分析

6.1 自动化数据收集

Nethogs 可以配合 shell 脚本定时运行并保存输出,以便后续分析。下面是一个简单的示例,展示如何每5分钟运行 Nethogs 并保存输出到日志文件中:

#!/bin/bash
while true; do
    sudo nethogs -t -d 300 >> /path/to/nethogs.log
    sleep 300
done

这个脚本使用了 -t 选项以文本模式运行 Nethogs,并每5分钟记录一次数据,然后休眠300秒。

6.2 数据分析示例

假设已经收集了足够的 Nethogs 日志数据,可以使用文本处理工具如 awk 来分析哪些进程在特定时间段内使用了最多的带宽。以下是一个简单的 awk 脚本示例,用于找出总带宽使用最多的进程:

awk '{print $1,$2,$7}' /path/to/nethogs.log | sort -nrk 3 | head

此命令会从日志文件中提取进程ID、程序名和总流量,然后按流量进行降序排序,并显示前10个结果。

6.3 实战测试
nethogs -t -d 1 >> ./nethogs.log
awk '{print $1,$2,$7}' ./nethogs.log | sort -nrk 3 | head

在这里插入图片描述
在这里插入图片描述

7. 结合其他工具增强监控能力

7.1 结合 Grafana 展示数据

可以将 Nethogs 的输出与时间序列数据库(如 Prometheus)结合,并使用 Grafana 来创建可视化的仪表板。这可以让监控数据更直观,易于分析。具体步骤包括:

  1. 将 Nethogs 输出转换为 Prometheus 可接受的格式。
  2. 使用 Prometheus 抓取这些数据。
  3. 在 Grafana 中设置仪表板,利用这些数据创建图表和警报。
7.2 使用 Syslog 进行实时警报

Nethogs 可以配置为将重要信息输出到 Syslog,从而结合系统的日志管理策略实现实时警报。通过配置 Syslog 规则,可以在检测到异常带宽使用时发送邮件或短信警报。

8. 结语

Nethogs 不仅仅是一个简单的网络监控工具,其灵活性和可扩展性使得它可以成为企业和个人网络管理工具箱中的一个重要组件。通过结合脚本自动化、数据分析和其他监控工具,可以极大提升网络管理的效率和响应速度。

接下来,如果有需要,可以探讨更多关于网络安全的实践,如何使用 Nethogs 来防御 DDoS 攻击等更复杂的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1923683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux网络】数据链路层【上】{初识数据链路层/以太网/路由表/MAC地址表/ARP表/NAT表}

文章目录 1.初识数据链路层2.认识以太网2.0前导知识以太网帧和MAC帧CMSA/CD以太网的最小帧长限制是64字节IP层和MAC层 2.1以太网帧格式 3.预备知识计算机网络通信以太网和wifi路由表/MAC地址表/ARP表/NAT表/ACL表 用于同一种数据链路节点的两个设备之间进行信息传递。 1.初识数…

美团一面,你碰到过CPU 100%的情况吗?你是怎么处理的?

本文主要分为三部分 分析一下CPU 100%的常见原因 CPU 100%如何排查 回答这个问题的一个参考答案 CPU被打满的常见原因 1. 死循环 在实际工作中&#xff0c;可能每个开发都写过死循环的代码。 死循环有两种&#xff1a; 在 while、for、forEach 循环中的死循环。 无限递…

期末成绩单怎么单独发给家长,这个小工具超简单!

随着期末考试的落幕&#xff0c;老师们再次迎来了成绩处理的高峰期。传统的成绩单分发方式不仅耗时&#xff0c;还容易出错。但如今&#xff0c;有了易查分小程序&#xff0c;这一过程变得简便而高效。 易查分小程序&#xff0c;一个专为教师和家长设计的便捷工具&#xff0c;让…

[ruby on rails]部署时候产生ActiveRecord::PreparedStatementCacheExpired错误的原因及解决方法

一、问题&#xff1a; 有时在 Postgres 上部署 Rails 应用程序时&#xff0c;可能会看到 ActiveRecord::PreparedStatementCacheExpired 错误。仅当在部署中运行迁移时才会发生这种情况。发生这种情况是因为 Rails 利用 Postgres 的缓存准备语句(PreparedStatementCache)功能来…

【Apache Doris】周FAQ集锦:第 10 期

【Apache Doris】周FAQ集锦&#xff1a;第 10 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户…

算法力扣刷题记录 四十五【110.平衡二叉树】

前言 二叉树篇继续 记录 四十五【110.平衡二叉树】 一、题目阅读 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,3,3…

【鸿蒙学习笔记】尺寸设置・width・height・size・margin・padding・

官方文档&#xff1a;尺寸设置 目录标题 width&#xff1a;设置组件自身的宽度height&#xff1a;设置组件自身的高度size&#xff1a;设置高宽尺寸margin&#xff1a;设置组件的外边距padding&#xff1a;设置组件的内边距 width&#xff1a;设置组件自身的宽度 参数为Length…

【零基础】学JS之APIS第三天

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

10分钟快速了解神经网络(Neural Networks)

神经网络是深度学习算法的基本构建模块。神经网络是一种机器学习算法&#xff0c;旨在模拟人脑的行为。它由相互连接的节点组成&#xff0c;也称为人工神经元&#xff0c;这些节点组织成层次结构。 Source: victorzhou.com 神经网络与机器学习有何不同&#xff1f; 神经网络是…

电脑资料丢失不用慌,5招教你恢复数据

在数字化时代&#xff0c;电脑资料的安全与完整对我们而言至关重要。然而&#xff0c;生活中总有一些小插曲&#xff0c;如意外删除、系统故障或病毒攻击等&#xff0c;导致电脑上的重要资料消失得无影无踪。面对这种情况&#xff0c;我们往往感到焦虑和无助。今天&#xff0c;…

LabVIEW心电信号自动测试系统

开发了一种基于LabVIEW的心电信号自动测试系统&#xff0c;通过LabVIEW开发的上位机软件&#xff0c;实现对心电信号的实时采集、分析和自动化测试。系统包括心电信号采集模块、信号处理模块和自动化测试模块&#xff0c;能够高效、准确地完成心电信号的测量与分析。 硬件系统…

在 SwiftUI 中的作用域动画

文章目录 前言简单示例动画视图修饰符使用多个可动画属性使用 ViewBuilder总结 前言 从一开始&#xff0c;动画就是 SwiftUI 最强大的功能之一。你可以在 SwiftUI 中快速构建流畅的动画。唯一的缺点是每当我们需要运行多步动画或将动画范围限定到视图层次结构的特定部分时&…

网络规划设计师教程(第二版) pdf

网络规划设计师教程在网上找了很多都是第一版&#xff0c;没有第二版。 所以去淘宝买了第二版的pdf&#xff0c;与其自己独享不如共享出来&#xff0c;让大家也能看到。 而且这个pdf我已经用WPS扫描件识别过了&#xff0c;可以直接CtrlF搜索关键词&#xff0c;方便查阅。 链接…

股指期货存在的风险有哪些?

股指期货因其标的物的特殊性&#xff0c;其面临的风险类型十分复杂&#xff0c;主要面临的一般风险和特有风险如下&#xff1a; 一般风险 从风险是否可控的角度&#xff0c;可以划分为不可控风险和可控风险&#xff1b;从交易环节可分为代理风险、流动性风险、强制平仓风险&…

linux 安装redis 遇到问题解决方案

1.当下载了redis包时&#xff08;version&#xff1a;6.0.6&#xff09; 进入解压后的redis目录&#xff08;这里采用tar包安装&#xff09; 当执行make命令时 如果遇到如下情况&#xff1a; 查看当前服务起的gcc 版本&#xff1a;因为redis需要c编译器编译 gcc -v centos 7 …

使用亮数据代理IP+Python爬虫批量爬取招聘信息训练面试类AI智能体

本文目录 一、引言二、开发准备三、代码开发四、使用亮数据进行高效爬取4.1 为什么需要亮数据4.2 如何使用亮数据 五、使用数据训练AI智能体六、 总结 一、引言 在当今AI迅速发展的时代&#xff0c;招聘市场正经历着前所未有的变革。传统的招聘方式已难以满足双方的需求。AI智…

Transformer模型:Postion Embedding实现

前言 这是对上一篇WordEmbedding的续篇PositionEmbedding。 视频链接&#xff1a;19、Transformer模型Encoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 上一篇链接&#xff1a;Transformer模型&#xff1a;WordEmbedding实现-CSDN博客 正文 先回顾一下原论文中对Posit…

如何巧妙运用百川工作手机微信行为监控 防范员工离职带走客户

在竞争日益激烈的商业环境中&#xff0c;企业最宝贵的资产莫过于忠诚的客户群体与高效协作的团队。然而&#xff0c;当团队中不可避免地出现人员流动时&#xff0c;如何有效防止客户资源流失&#xff0c;成为众多企业管理者面临的严峻挑战。百川工作手机&#xff0c;作为一款专…

基于Redisson 实现 Redis 分布式锁

代码示例&#xff1a; GetMapping("/testJmeter")public void testJmeter() {synchronized (this){int stock Integer.parseInt(stringRedisTemplate.opsForValue().get("stock"))if (stock > 0) {int realStock stock - 1;stringRedisTemplate.opsFo…

【组件库】element-plus组件库

文章目录 0. 启动项目1. gc.sh 新增组件2. 本地验证(组件注册的方式)3. 官方文档修改3-1. 左侧菜单3-2 . 配置md文档3-3. 代码问题:文档修改----------------------------------------------4. 将naiveui的split 分割组件【 复制、迁移】到 element-ui-plus组件库4.1 naiveu…