linux自身如何基于netflow进行流量分析(适用于pcdn行业)

工作原理

# 原理
    1、基于netflow采集流量成分(例如5元组之类的),并将其发送到远端 或者发送到本地
    2、用 nfcapd 流接收工具,接收netflow流数据,并将其导出到本地(并非抓取,所以不支持远程ip,仅支持本机ip)
    3、用 nfdump 流查看工具,分析流量成分

# 涉及的程序,及安装方式
    softflowd:  流采集工具,充当netflow导出器,安装文档:  https://boke.wsfnk.com/archives/1432.html
    # 以下两个命令,都包含在nfdump 这个程序包中,只需安装它即可 
    nfcapd:  流接收工具,充当netflow接收器
    nfdump:  流查看工具,充当netflow分析器
    # rhel系列
        yum -y install epel-release ; yum -y install nfdump
    # debian系列
        apt  -y install nfdump

第一:采集netflow流量

# 前提(正常情况下不需要执行)
    ethtool -K eth0 gro off
    ethtool -K eth0 lro off
    ethtool -K eth0 gso off
    ethtool -K eth0 tso off
    ethtool -K eth0 sg off
    ethtool -K eth0 rx off
    ethtool -K eth0 tx off

# 常用参数介绍
    -v 5    # 指定netflow协议版本,可选值 5|9
    -D    # debug 模式,会在前台打印采集的flow

# 常用组合命令
    softflowd -i eth0 -n 127.0.0.1:9995 -v 5
    softflowd -i eth0 -n 127.0.0.1:9995 -v 5 -D
    # 各种不同标志的网络流量默认导出时间不同,有tcp;tcp.fin;tcp.rst;udp 等等,还有统一的maxlife
    # Tips: 如果 TCP 连接非常长时间不活动,这样会 把活动 TCP 流提前导出,可能和真实连接状态略有偏差
    softflowd -i eth0 -n 127.0.0.1:9995 -v 9 -T full -D -t tcp=60 -t tcp.fin=60 -t tcp.rst=60 -t udp=60

    # 推荐用法(maxlife=1每秒导出,这样能及时出数据)
    softflowd -i eth0 -n 127.0.0.1:9995 -v 9 -T full  -t maxlife=1
    softflowd -i eth0 -n 127.0.0.1:9995 -v 9 -T full -D -t maxlife=1

第二:nfcapd 接收并导出数据

# 默认会导出到 /var/log/flows 目录,默认该目录不存在,所以先自行创建,否则会报错
    mkdir /var/log/flows

# 常用参数介绍
    -t 60   # 文件每60轮转,就是每60s存一个文件(实测60s是 设备自然时间,非倒计时60s)
    -e      # 强制 flush

# 常用组合命令
    nfcapd -l /var/log/flows -b 127.0.0.1 -p 9995 -t 60 -e
    nfcapd -l /var/log/flows -b 0.0.0.0 -p 9995 -t 60 -E
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1596.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2025/11/26作者: 辣条①号

目标:网络规划设计师、系统工程师、ceph存储工程师、云计算工程师。 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录