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 攻击等更复杂的场景。

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

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

相关文章

排序算法基础(未完待续)

4.1 排序 4.1.1 选择排序 4.1.2 插入排序 4.1.3 排序与sort函数的应用 sort函数参数 sort(首元素地址,尾元素的下一个元素的地址,比较函数(cmp,非必填))如果不写比较函数,那默认对给定区间进行递增排序 如何实现比较函数 从基本数据类型、结构体类型、STL容器进行自定排…

注意力机制篇 | YOLOv8改进之在C2f模块引入Global Context注意力模块 | 全局上下文注意力机制

前言:Hello大家好,我是小哥谈。GCNet(Global Context Network)是由XV Jiарui开发的一个开源项目,它旨在通过全局上下文信息增强网络的注意力机制,以改善模型对图像的理解和处理能力。它的核心思想是在每个残差块之后添加一个全局上下文模块(即本文的Global Context注意…

【Quart 框架——来源于Flask的强大且灵活的异步Web框架】

目录 前言一、Quart简介1-1、简介1-2、与flask的区别 二、快速开始2-1、安装2-2、基本用法 三、核心功能3-1、异步路由3-2、WebSockets 支持3-3、中间件3-4、蓝图 (Blueprints) 四、部署4-1、使用uvicorn部署4-2、使用hypercorn部署 五、案例分析总结 前言 Quart 是一个基于 Py…

【Python】爬虫实战01:获取豆瓣Top250电影信息

本文中我们将通过一个小练习的方式利用urllib和bs4来实操获取豆瓣 Top250 的电影信息&#xff0c;但在实际动手之前&#xff0c;我们需要先了解一些关于Http 请求和响应以及请求头作用的一些知识。 1. Http 请求与响应 HTTP&#xff08;超文本传输协议&#xff09;是互联网上…

虚函数__

10 文章目录 虚函数虚函数表override(不允许后续函数继承)虚析构纯虚函数 虚函数 虚函数表 override(不允许后续函数继承) 虚析构 纯虚函数

从零开始学习PX4源码3(如何上传官网源码到自己的仓库中)

目录 文章目录 目录摘要1.将PX4源码上传至腾讯工蜂2.从腾讯工蜂克隆源码到本地ubuntu3.如何查看自己源码的版本信息 摘要 本节主要记录从零开始学习PX4源码3(如何上传官网源码到自己的仓库中)及如何查看PX4的固件版本信息&#xff0c;欢迎批评指正&#xff01; PX4源码版本V1.…

构建新纪元:Gradle中Kotlin插件的配置全指南

构建新纪元&#xff1a;Gradle中Kotlin插件的配置全指南 引言 Kotlin&#xff0c;这门现代、简洁的语言&#xff0c;正在逐渐成为Java平台的有力补充。随着Kotlin在Android开发中的广泛采用&#xff0c;以及对服务器端和Web开发的支持&#xff0c;Kotlin插件在Gradle中的配置…

mysql-联合查询

一.联合查询的概念 .对于unio查询,就是把多次查询的结果合并起来,形成一个新的查询果集。 SELECT 字段列表 FROM 表A... UNION[ALL] SELECT 字段列表 FROM 表B...&#xff0c; 二.将薪资低于5000的员工,和年龄大于50岁的员工全部查询出来 select * from emp where salary&…

无人机的工作原理

无人飞行器&#xff08;UAV&#xff0c;即Unmanned Aerial Vehicle&#xff09;的工作原理涉及多个复杂的系统和技术。以下是对各个系统和技术的详细介绍&#xff1a; 1. 飞行控制系统&#xff08;FCS&#xff09; 飞行控制系统是无人机的“大脑”&#xff0c;负责监控和调整…

【Android】在渲染生效前提前测量View大小

问题 Android的UI机制是基于MessageHandler的&#xff0c;View并不会在添加后就会被立刻测量渲染出来 但有时我们需要动态去计算布局&#xff0c;希望在添加View时&#xff0c;就能知道这个View的高度 方法 此时&#xff0c;我们可以手动去调用measure方法&#xff0c;来测…

使用 Apache Pulsar 构建弹性可扩展的事件驱动应用

本视频来自 2024 Apache Pulsar 欧洲峰会&#xff0c;由 David Kjerrumgaard, 《Pulsar in Action》书作者给大家带来的《使用 Apache Pulsar 构建弹性可扩展的事件驱动应用》分享。 嘉宾&#xff5c;David Kjerrumgaard&#xff0c;Apache Pulsar Committer&#xff0c;《Pul…

总结单例模式的写法

一、单例模式的概念 1.1 单例模式的概念 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。就是当前进程确保一个类全局只有一个实例。 1.2 单例模式的优…

基于php+mysql的简单图书管理系统(附源码)

一、模块设计 二、技术选型 IDE&#xff1a;phpstorm mysql&#xff1a;5.1 php&#xff1a;7.3.29 运行工具&#xff1a;phpstudy 三、数据库设计 用户表&#xff1a; CREATE TABLE t_user (id int(11) NOT NULL AUTO_INCREMENT,uname varchar(255) DEFAULT NULL,upass…

C语言的神髓

​​​​​​​ ​​​​​​​

JAVA-报表模糊搜索询易实现

背景: 一般文件报表经常会需要搜各个表头对应内容&#xff0c;如果支持全部类型切换搜索&#xff0c;操作起来就不够便捷。而且这个报表是测试自己用的&#xff0c;准确性可以不用太要求&#xff0c;所以更想要那中输入关键字命中任意表记录内容的模糊匹配功能。 方法一:解析搜…

记录些Redis题集(3)

分布式锁 分布式锁是一种用于在分布式系统中实现互斥访问的机制&#xff0c;它可以确保在多个节点、或进程同时访问共享资源。如果没有适当的锁机制&#xff0c;就可能导致数据不一致或并发冲突的问题。 分布式锁需要的介质 需要一个多个微服务节点都能访问的存储介质&#…

matine组件库踩坑日记 --- react

Mantine实践 一 禁忌核心css样式二 添加轮播图扩展组件 一 禁忌核心css样式 import React from react import ReactDOM from react-dom/client import { BrowserRouter } from react-router-dom; import App from ./App.jsx import ./index.css import mantine/core/styles.cs…

RocketMQ~架构了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统&#xff0c;由阿里巴巴团队开发&#xff0c;在 2016 年底贡献给 Apache&#xff0c;成为了 Apache 的一个顶级项目。 在阿里内部&#xff0c;RocketMQ 很好地服务了集…

DHCPv6 详情及其报文介绍 - 附配置案例及验证命令(Cisco)

DHCPv6 诞生的原因 IPv6 协议具有地址空间巨大的特点&#xff0c;但同时长达 128 比特的 IPv6 地址又要求高效合理的地址自动分配和管理策略。IPv6 无状态地址配置方式&#xff08;RFC2462&#xff09;是目前广泛采用的 IPv6 地址自动配置方式。配置了该协议的主机只需相邻设备…

Vue2 vs Vue3:抉择的艺术 —— 学习路线全解析

在前端开发的浩瀚星海中&#xff0c;Vue.js 无疑是一颗璀璨夺目的明星。随着 Vue3 的横空出世&#xff0c;许多开发者陷入了纠结&#xff1a;我应该学习 Vue2 还是 Vue3&#xff1f;两者之间的差异何在&#xff1f;本文将深入探讨 Vue2 与 Vue3 的特点、应用场景及学习建议&…