如何记录 Linux 端口的出口 http 请求并统计 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SJ2050cn
V2EX    问与答

如何记录 Linux 端口的出口 http 请求并统计

  •  
  •   SJ2050cn 2021-07-11 12:18:23 +08:00 2641 次点击
    这是一个创建于 1632 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想要统计一段时间内 Linux 服务器发送的请求信息,预期的统计结果形式类似如下:
    2021-7-11 8:00-18:00
    url method conut
    baidu.com get 2
    v2ex.com post 3
    ...
    目前我了解到 tcpdump 可以对请求进行抓包并记录,最后可以通过脚本的方法进行统计处理,但似乎有点麻烦,不知各位老哥有啥建议。

    13 条回复    2021-07-12 00:14:15 +08:00
    cctv6
        1
    cctv6  
       2021-07-11 14:06:50 +08:00
    似乎只有抓包这一条路可以走
    waf 防火墙设备的统计信息里面可能有记录这些服务器发起 http 请求
    SJ2050cn
        2
    SJ2050cn  
    OP
       2021-07-11 14:45:38 +08:00
    @cdlnls 有啥功能全的 waf 防火墙推荐吗,我目前机子用的 verynginx,很简陋。
    ik
        3
    ik  
       2021-07-11 15:35:46 +08:00 via iPhone
    clarles
    ik
        4
    ik  
       2021-07-11 15:36:32 +08:00 via iPhone
    纠正 charles
    SJ2050cn
        5
    SJ2050cn  
    OP
       2021-07-11 18:31:41 +08:00
    @ik 请问这个可以单独命令行安装和运行吗,服务器没配置图形化界面,上网搜了一下 charles 的教程都是在图形化界面下进行的。
    ik
        6
    ik  
       2021-07-11 19:32:17 +08:00 via iPhone
    @SJ2050cn 估计得图形化界面…
    gefranks
        7
    gefranks  
       2021-07-11 19:58:01 +08:00 via iPhone
    本机搞个透明代理 要抓的流量都过一次代理?
    adrianzhang
        8
    adrianzhang  
       2021-07-11 20:16:59 +08:00
    如果只是 http 的话,可以从 web 服务器日志分析下手。这方面 Splunk 可以做,也有很多 open source 项目。
    also24
        9
    also24  
       2021-07-11 21:26:01 +08:00   1
    直觉上可以用 mitmproxy 搞定

    https://mitmproxy.org/
    woodrat
        10
    woodrat  
       2021-07-11 21:47:04 +08:00
    统计出流量并且不指定进程的话,tcpdump 比较可行,其他的更麻烦一点
    cctv6
        11
    cctv6  
       2021-07-11 22:17:51 +08:00   1
    @SJ2050cn 额,我刚刚说的防火墙不是 verynginx 这种软件。是那种硬件设备(类似深信服安恒这样厂家的产品),这些都是基于流量去做防护的,所以我才说*可能*有记录服务器发起的 http 请求。

    另外刚刚又想到一个问题,如果是在本机通过 tcpdump 抓包的话,是统计不了 https 的访问请求的,获取不到 url 和 method 。上面的 waf 应该也不行,貌似解决的办法只有让需要统计的程序使用代理,然后再在代理那一层上统计,或者是改程序,由发起请求的程序统计。
    also24
        12
    also24  
       2021-07-11 23:25:53 +08:00
    @cdlnls #11
    楼主在问题里虽然写的是 url,但是从下面的例子来看又只取了域名,如果只需要域名的话靠 SNI 信息就行了。
    supermoonie
        13
    supermoonie  
       2021-07-12 00:14:15 +08:00 via iPhone
    之前 java 写过 https 抓包,图形界面写了一大半,再改改就能满足你的需求
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3275 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 10:53 PVG 18:53 LAX 02:53 JFK 05:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86