当前位置: 首页 > news >正文

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

文章目录

    • 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; dosudo nethogs -t -d 300 >> /path/to/nethogs.logsleep 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 攻击等更复杂的场景。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux程序替换
  • NAT地址转换+多出口智能选路,附加实验内容
  • unity 2020版本packManager没有AssetBundles
  • stm32h743 NetXduo 实现http server CubeIDE+CubeMX
  • 深度学习和NLP中的注意力和记忆
  • Redis的一个典型应用
  • TensorFlow系列:第四讲:MobileNetV2实战
  • SpringBoot:SpringBoot中如何实现对Http接口进行监控
  • Python爬虫:基础爬虫架构及爬取证券之星全站行情数据!
  • spring管理bean源码解析
  • [GICv3] 3. 物理中断处理(Physical Interrupt Handling)
  • 【 香橙派 AIpro评测】烧系统到运行并使用Jupyter Lab 界面体验 AI 应用样例(新手福音)
  • Excel中用VBA实现Outlook发送当前工作簿
  • Qt项目:基于Qt实现的网络聊天室---TCP服务器和token验证
  • 从数据仓库到数据湖(上):数据湖导论
  • JS 中的深拷贝与浅拷贝
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • C++11: atomic 头文件
  • C++类的相互关联
  • Facebook AccountKit 接入的坑点
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • ng6--错误信息小结(持续更新)
  • vue2.0项目引入element-ui
  • vue自定义指令实现v-tap插件
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 区块链技术特点之去中心化特性
  • 全栈开发——Linux
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 异步
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​渐进式Web应用PWA的未来
  • ​什么是bug?bug的源头在哪里?
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • ( 10 )MySQL中的外键
  • (~_~)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (十一)c52学习之旅-动态数码管
  • (四)opengl函数加载和错误处理
  • (转)jQuery 基础
  • (转)平衡树
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布