实时监控网络接口上的 HTTP 请求?

max*_*zig 102 networking monitoring http-logging

出于调试目的,我想监视网络接口上的 http 请求。

使用幼稚的tcpdump命令行,我得到了太多底层信息,而我需要的信息却没有很清楚地表示出来。

将流量转储tcpdump到文件然后使用wireshark的缺点是它不是即时的。

我想像这样的工具用法:

$ monitorhttp -ieth0 --only-get --just-urls
2011-01-23 20:00:01 GET http://foo.example.org/blah.js
2011-01-23 20:03:01 GET http://foo.example.org/bar.html
...
Run Code Online (Sandbox Code Playgroud)

我正在使用 Linux。

bah*_*mat 134

尝试tcpflow

tcpflow -p -c -i eth0 port 80 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*'
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

GET /search?q=stack+exchange&btnI=I%27m+Feeling+Lucky HTTP/1.1
Host: www.google.com
Run Code Online (Sandbox Code Playgroud)

您显然可以向 grep 语句添加额外的 HTTP 方法,并使用sed将这两行组合成一个完整的 URL。

  • 使用 wifi 浏览时一无所获:sudo tcpflow -p -c -i wlo2 port 80 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|主机:.*' (2认同)

小智 27

您可以使用httpryJustniffer来做到这一点。

httpry 可以通过 Fedora 软件包存储库获得。

示例调用:

# httpry -i em1
Run Code Online (Sandbox Code Playgroud)

(其中em1表示网络接口名称)

示例输出:

2013-09-30 21:35:20    192.168.0.1     198.252.206.16    >    POST    unix.stackexchange.com    /posts/6281/editor-heartbeat/edit    HTTP/1.1
2013-09-30 21:35:20    198.252.206.16  192.168.0.1       < HTTP/1.1   200    OK
2013-09-30 21:35:49    192.168.0.1     198.252.206.16    >    POST    unix.stackexchange.com    /posts/validate-body                 HTTP/1.1
2013-09-30 21:35:49    198.252.206.16  192.168.0.1       < HTTP/1.1   200    OK
2013-09-30 21:33:33    192.168.0.1      92.197.129.26    >    GET     cdn4.spiegel.de    /images/image-551203-breitwandaufmacher-fgoe.jpg    HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

(输出略有缩短)


lem*_*eze 9

我正在寻找类似的东西,并增加了它也应该适用于https 的要求。

基于 pcap 的工具(如tcpdump kung futcpflow httpry urlsnarf和其他tcpdump kung fu)适用于 http,但对于安全请求,您就不走运了。

我想出了urldump,这是周围的小包装mitmproxy
iptables用于将流量重定向到代理,因此它透明地工作。

$ sudo urldump   
http://docs.mitmproxy.org/en/stable/certinstall.html
http://docs.mitmproxy.org/en/stable/_static/js/modernizr.min.js
https://media.readthedocs.org/css/sphinx_rtd_theme.css
https://media.readthedocs.org/css/readthedocs-doc-embed.css
https://media.readthedocs.org/javascript/readthedocs-doc-embed.js
...
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅自述文件。