V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
go2sleep
V2EX  ›  分享创造

分享一个 HTTP 抓包工具 netgraph

  •  
  •   go2sleep · 2018-07-26 12:37:54 +08:00 · 5498 次点击
    这是一个创建于 2072 天前的主题,其中的信息可能已经有所发展或是发生改变。

    netgraph 源码地址

    netgraph 可执行文件下载地址(macos, centos)

    主要解决的问题:

    1. 调试 Linux 服务器程序时,由于部署环境往往没有桌面环境,无法提供图形化的展示,只能通过 tcpdump 抓包然后传到开发电脑,再用 wireshark/charles 打开,很麻烦。有了 Netgraph 你可以在服务器上直接运行该工具,在服务器网卡上抓包,开发人员可以通过浏览器打开服务器上的 netgraph 页面查看抓包情况。

    2. Mac 上的 HTTP 抓包工具都收费,这个免费工具应该可以帮到你。

    缺点:不能处理 HTTPS

    项目由 golang 编写,喜欢 golang 的同学欢迎一起交流!

    3 年前我就在 V2EX 上分享过了,最近有时间,把代码全面优化了一遍,修改了 bug,加了新功能,所以再次推广一下。

    希望能帮到有类似需求的 V2EXer,也希望小伙伴们多多提需求提 Bug !

    第 1 条附言  ·  2018-07-26 13:10:22 +08:00
    对你有帮助的话,求 Star !
    第 2 条附言  ·  2018-08-06 11:18:47 +08:00
    新版本 v1.1 发布了,修复了上一个版本中潜在的内存问题和竞态条件问题,这些问题可能导致超大的 request/response 数据错误。

    使用旧版程序的亲们请更新新版本。
    22 条回复    2018-07-31 10:22:20 +08:00
    la0wei
        1
    la0wei  
       2018-07-26 14:35:14 +08:00   ❤️ 1
    这么多点击和收藏,偏偏没有人回复,这不科学,送楼主上去
    go2sleep
        2
    go2sleep  
    OP
       2018-07-26 14:42:51 +08:00
    @la0wei 感激涕零~
    batnss
        3
    batnss  
       2018-07-26 14:44:38 +08:00
    收藏+up
    MuscleOf2016
        4
    MuscleOf2016  
       2018-07-26 14:56:19 +08:00
    帮顶 up
    leopku
        5
    leopku  
       2018-07-26 16:02:16 +08:00   ❤️ 1
    up
    bSty
        6
    bSty  
       2018-07-26 16:20:46 +08:00
    up up
    Beebird
        7
    Beebird  
       2018-07-26 16:36:58 +08:00
    收藏
    awolfly9
        8
    awolfly9  
       2018-07-26 17:27:11 +08:00
    楼主可以了解下 mitmproxy
    awolfly9
        9
    awolfly9  
       2018-07-26 17:28:07 +08:00
    另外如果 -> 缺点:不能处理 HTTPS
    这基本就不能抓包了吧
    go2sleep
        10
    go2sleep  
    OP
       2018-07-26 17:39:32 +08:00
    @awolfly9 没记错的话,mitmproxy 需要你设置 client 的代理,这个不适应服务端 debug 的需求。

    我做这个项目最早也是为了服务器端 debug 用的。通常服务器收到的请求都是来自网关,属于内网环境,一般不会用 HTTPS 了。

    所以 mitmproxy 和 netgraph 适用的场景不同。
    swcat
        11
    swcat  
       2018-07-26 19:00:48 +08:00 via iPhone
    收藏
    beyondsoft
        12
    beyondsoft  
       2018-07-26 19:12:47 +08:00
    Star +1 收藏了,感谢楼主复出
    blanu
        13
    blanu  
       2018-07-26 19:17:16 +08:00
    666 啊,我以为需要手动设置代理,结果只需要 root 权限就行了。关于 web 界面,可以参考 https://github.com/avwo/whistle 的抓包界面,或者我看看能不能把这俩项目结合一下哈哈。
    go2sleep
        14
    go2sleep  
    OP
       2018-07-26 19:39:18 +08:00 via iPhone
    @blanu 你发的这个界面确实好很多😄,我前端水平比较差,欢迎你提 pull request
    des
        15
    des  
       2018-07-26 20:13:59 +08:00 via Android
    所以 wireshark + ssh + tcpdump 不行么?
    毕竟这么强大的工具
    des
        16
    des  
       2018-07-26 20:15:26 +08:00 via Android   ❤️ 2
    ssh root@HOST tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -
    go2sleep
        17
    go2sleep  
    OP
       2018-07-26 20:18:29 +08:00 via iPhone
    @des 多谢🙏,没想到这一招!学习了!

    不过我还是觉得 wireshark 对 http 的展示不如 charles 之类的直观
    awolfly9
        18
    awolfly9  
       2018-07-27 10:15:29 +08:00   ❤️ 1
    @go2sleep 在服务器单独 debug 用,确实没什么接触
    Rcnaec
        19
    Rcnaec  
       2018-07-27 10:15:49 +08:00
    up
    aice114
        20
    aice114  
       2018-07-27 14:26:43 +08:00
    顶一下
    ggmood
        21
    ggmood  
       2018-07-30 16:37:21 +08:00
    顶起来
    yaxin
        22
    yaxin  
       2018-07-31 10:22:20 +08:00 via iPhone
    ngrep 命令
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1377 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:39 · PVG 01:39 · LAX 10:39 · JFK 13:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.