V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
labex.io
通过在线实验与 50 万用户一起学 Linux、DevOps 和网络安全技术,付款时输入 V2EX30 限时 30% 专属折扣
Promoted by JamesZHH
oom
V2EX  ›  Go 编程语言

分享一款流量分析工具 [GO-FLOW]

  •  
  •   oom · 83 天前 · 2678 次点击
    这是一个创建于 83 天前的主题,其中的信息可能已经有所发展或是发生改变。

    go-flow 是一款基于滑动窗口实现的实时网络流量监控工具,专为网络调试、带宽分析和流量洞察设计。 它不仅能帮助你快速定位网络问题,还能通过 IP 流量分析实现 DDoS 预警。 基于 Go 开发,无外部依赖,部署简单,配有直观的 Web 界面,适合系统管理员、开发者与网络工程师。 欢迎大佬们体验并分享想法和建议

    https://github.com/xxddpac/go-flow

    22 条回复    2025-07-03 14:31:20 +08:00
    v2er119
        1
    v2er119  
       83 天前
    看上去不错,要是加个主流系统的二进制版本,用的人就方便多了。现在:No releases published 。当然也可以在 Readme 加上编译过程。
    oom
        2
    oom  
    OP
       83 天前
    @v2er119 谢谢大佬,晚点更新下 releases
    nasaboy
        3
    nasaboy  
       83 天前
    ./go-flow: error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
    bv
        4
    bv  
       83 天前
    @nasaboy 你这是缺少 libpcap 依赖,
    yum install libpcap-devel 或
    apt install libpcap-dev
    nasaboy
        5
    nasaboy  
       83 天前
    @bv 安装过了,还是一样
    oom
        6
    oom  
    OP
       83 天前
    @nasaboy 大佬啥系统,yum install -y libpcap 试试,这个报错是缺少 libpcap 库
    nasaboy
        7
    nasaboy  
       82 天前
    @oom 用的 Ubuntu24
    mengyx
        8
    mengyx  
       82 天前 via Android
    性能大概在什么级别?能超过 10Gbps / 1Mpps 吗?
    zzhirong
        9
    zzhirong  
       82 天前
    我能理解成, 抓包, 然后对包进行汇总, 我能想到的:
    1. 可能会对网络性能有影响, 如果数据量大的话, 程序本身可能还要占用很多资源。
    2. 如果不用精细化到单个 ip, 可以直接用内核暴露的统计数据,比如 /proc/net/dev 。
    FrankAdler
        10
    FrankAdler  
       82 天前
    443 的抓不到 sni 吗,只有 ip 不太直观啊
    oom
        11
    oom  
    OP
       80 天前
    @zzhirong 这个工具主要定位是将网络中核心节点或出口流量旁路镜像过来分析,所以对网络性能是无影响的,程序本身使用了协程池和环形队列,在给定的窗口期间内实时计算,如果不是超大规模的流量级别性能也是可观的
    oom
        12
    oom  
    OP
       80 天前
    @FrankAdler 目前只是抓了 TCP 五元组信息哦大佬
    oom
        13
    oom  
    OP
       80 天前
    @mengyx 达不到这个级别,我将 20Gbps 专线流量镜像过来测试,程序运行的服务器 64 核/256G ,发现有 15%的丢包,性能瓶颈估计还是在 libpacp 和锁竞争这块
    zzhirong
        14
    zzhirong  
       79 天前
    @oom 像这种只要统计包头, 不需处理包内数据的场景, 用 eBPF 很合适, 它在内核中直接生成统计数据, 用户态直接读取统计结果, 避免了大量了无用的拷贝, 可以看一下 https://github.com/cilium/ebpf
    oom
        15
    oom  
    OP
       79 天前
    @zzhirong 多谢大佬,研究研究
    zzhirong
        16
    zzhirong  
       79 天前
    @oom 昨晚用 AI 写了一个 https://github.com/zzhirong/traffic_aggregation , 可以参考一下。吐槽一下,本来想体验一下 vibe coding 的,结果还是花了 3 个多小时,有点像是在给 AI 当助理。
    oom
        17
    oom  
    OP
       79 天前
    @zzhirong 666 ,测试下
    newtonMiku
        18
    newtonMiku  
       34 天前
    @zzhirong 大佬 readme 中没预览图吗
    zzhirong
        19
    zzhirong  
       34 天前
    @newtonMiku 已经添加了界面预览。
    oom
        20
    oom  
    OP
       8 天前
    已通过 af-packet 重构啦,性能方面应该无限接近 eBPF 了
    150530
        21
    150530  
       7 天前
    老哥能封装成 docker 吗,有 docker 的话就挺方便的,不用下载解压配置 systemd 了
    oom
        22
    oom  
    OP
       7 天前
    @150530 大佬,现在是直接监听物理主机网卡来抓取流量的,如果用 Docker 部署的话需要加特殊权限,有一定安全风险,也不太推荐。目前二进制也很方便的,静态编译打包了所有依赖直接能放到主机上运行
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2956 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:34 · PVG 20:34 · LAX 05:34 · JFK 08:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.