文章目录
工作原理
# 原理
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
如果文章对你有帮助,欢迎点击上方按钮打赏作者
谢谢你请我吃辣条
暂无评论