Linux网络监控的终极武器:iftop+NetHogs双剑合璧,一招解决流量分析难题

admin 2025年2月10日11:57:06评论47 views字数 2564阅读8分32秒阅读模式

在 Linux 服务器或个人计算机上,监控网络流量是确保网络稳定性、识别性能瓶颈、检测异常流量以及优化带宽使用的重要手段。了解哪些进程或远程主机占用了大量网络资源,可以帮助我们更高效地管理和排查网络问题。

Linux 提供了许多强大的网络监控工具,其中 iftop 和 NetHogs 是最直观、易用的两个工具。iftop 主要用于按 IP 地址监控流量,而 NetHogs 则按进程显示带宽使用情况。

本文将详细介绍如何安装、使用和优化这两款工具,以帮助你更好地管理 Linux 系统的网络流量。

为什么需要监控网络流量?

Linux网络监控的终极武器:iftop+NetHogs双剑合璧,一招解决流量分析难题

网络流量监控在以下几个方面起着关键作用:

  1. 带宽优化:识别哪些进程或设备正在消耗大量带宽,从而优化资源分配。
  2. 异常流量检测:发现异常的网络活动,例如恶意软件或未经授权的访问。
  3. 性能故障排查:当网络连接速度变慢时,分析流量以找出具体的原因。
  4. 容量规划:确定当前网络是否能满足业务需求,并预测未来的扩展需求。

常见的 Linux 网络监控工具

1. iftop:基于 IP 地址的网络流量监控

iftop 的特点

  • 实时显示主机之间的流量情况。
  • 提供带宽使用的直观图表,支持按 IP 地址排序。
  • 允许按端口、协议或特定 IP 进行流量筛选。

2. NetHogs:基于进程的带宽监控

NetHogs 的特点

  • 按进程显示网络带宽使用情况,而不是按 IP 地址。
  • 适用于查找具体的应用程序(如浏览器或下载工具)是否占用过多带宽。
  • 轻量级,易于使用。

如何安装 iftop 和 NetHogs

安装 iftop

在不同的 Linux 发行版上,安装 iftop 的命令如下:

# 在 Debian/Ubuntu 上安装 iftop
sudo apt update
sudo apt install iftop -y

# 在 CentOS/RHEL 上安装 iftop
sudo yum update
sudo yum install iftop -y

安装完成后,可以使用以下命令检查是否安装成功:

iftop -h

安装 NetHogs

使用以下命令安装 NetHogs:

# 在 Debian/Ubuntu 上安装 NetHogs
sudo apt update
sudo apt install nethogs -y

# 在 CentOS/RHEL 上安装 NetHogs
sudo yum update
sudo yum install nethogs -y

安装完成后,运行以下命令查看 NetHogs 是否可用:

nethogs -h

如何使用 iftop 监控网络流量

1. 运行 iftop

要监控特定的网络接口(如 eth0),使用以下命令:

sudo iftop -i eth0

参数解析:

  • -i eth0:指定要监控的网络接口(可用 ip a 命令查看所有接口)。

2. 解析 iftop 输出

iftop 的输出界面包含以下信息:

  • 左侧:源 IP 地址(你的计算机)。
  • 右侧:目标 IP 地址(访问的远程主机)。
  • 中间:流量的实时变化,显示最近 2 秒、10 秒、40 秒的带宽使用情况。
  • 底部:总流量统计信息。

3. 过滤特定流量

如果你只想查看特定端口的流量(例如 HTTP 端口 80),可以使用 -f 选项:

sudo iftop -i eth0 -f "port 80"

4. 将 iftop 结果保存到文件

如果你想记录流量数据,可以使用 tee 命令将输出写入日志文件:

sudo iftop -i eth0 | tee network_log.txt

如何使用 NetHogs 监控进程带宽使用情况

1. 运行 NetHogs

要监控特定接口(如 eth0),使用以下命令:

sudo nethogs eth0

或者,监控所有接口:

sudo nethogs

2. 解析 NetHogs 输出

NetHogs 会显示以下信息:

  • 进程名称(如 firefoxwget)。
  • 进程 ID(PID)。
  • 进程的上行(sent)和下行(received)带宽使用情况(KB/s 或 MB/s)。

3. 终止占用大量带宽的进程

如果发现某个进程占用了大量带宽,可以通过 kill 命令终止它:

sudo kill -9 <PID>

其中 <PID> 是进程的 ID,可以从 NetHogs 输出中找到。

进阶技巧:结合其他工具进行分析

1. 结合 tcpdump 捕获流量

如果想进一步分析特定流量,可以使用 tcpdump 进行数据包抓取:

sudo tcpdump -i eth0 -w traffic.pcap

然后使用 Wireshark 进行详细分析:

wireshark traffic.pcap

2. 自动化流量监控

可以创建一个脚本,定期监控网络流量并记录数据:

#!/bin/bash
# 监控带宽并写入日志
INTERFACE="eth0"
LOGFILE="bandwidth_log.txt"

echo"开始监控 $INTERFACE 的网络流量..." | tee -a $LOGFILE
sudo iftop -i $INTERFACE -t >> $LOGFILE

然后赋予可执行权限:

chmod +x monitor_bandwidth.sh

执行脚本:

./monitor_bandwidth.sh

如何排查常见的网络问题?

1. 发现高带宽占用

  • 使用 NetHogs 找出哪个进程在消耗最多带宽。
  • 终止不必要的进程:
    sudo kill -9 <PID>

2. 解决网络连接变慢

  • 使用 iftop 找出哪些 IP 地址正在占用大量流量。
  • 过滤端口,查看特定协议的流量:
    sudo iftop -i eth0 -f "port 443"

3. 发现异常流量

  • 使用 tcpdump 抓取可疑流量:
    sudo tcpdump -i eth0 -w unusual_traffic.pcap
  • 在 Wireshark 中分析数据包,检查是否有异常的网络行为。

最佳实践建议

  • 定期监控网络流量,防止异常占用带宽。
  • 结合 iftop、NetHogs、tcpdump 等工具进行全面分析。
  • 记录日志,确保长期跟踪流量变化。
  • 限制对网络监控工具的访问,防止未经授权的用户使用它们。

总结

iftop 和 NetHogs 是 Linux 下强大的网络流量监控工具,分别用于 基于 IP 地址 和 基于进程 的流量分析。通过熟练使用这些工具,你可以:

  • 轻松找出哪些进程或主机占用了大量带宽。
  • 发现异常流量,确保系统安全。
  • 及时优化带宽使用,提高网络性能。

希望本文能帮助你更好地管理 Linux 服务器的网络流量!

原文始发于微信公众号(HW安全之路):Linux网络监控的终极武器:iftop+NetHogs双剑合璧,一招解决流量分析难题

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月10日11:57:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux网络监控的终极武器:iftop+NetHogs双剑合璧,一招解决流量分析难题https://cn-sec.com/archives/3719795.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息