我的应用程序正在向某个服务器发送 HTTP 请求,我想查看它发送的实际数据。我想看到的一些细节:
实现这一目标的最佳和简单方法是什么?
Pan*_*her 80
好吧,对于所有那些 tcpdump 粉丝 =)
以 root 身份运行所有这些命令!!!
在终端中获取 root
sudo -i
Run Code Online (Sandbox Code Playgroud)
要捕获 RAW 数据包...
sudo tcpdump -i any -w /tmp/http.log &
Run Code Online (Sandbox Code Playgroud)
这将捕获所有端口、所有接口上的所有原始数据包,并将它们写入文件/tmp/http.log
.
运行您的应用程序。如果您不运行任何其他使用 HTTP(网络浏览器)的应用程序,这显然会有所帮助。
杀 tcpdump
killall tcpdump
Run Code Online (Sandbox Code Playgroud)
要读取日志,请使用-A
标志并将输出通过管道传输到less
:
tcpdump -A -r /tmp/http.log | less
Run Code Online (Sandbox Code Playgroud)
该-A
标志打印出数据包中的“有效载荷”或 ASCII 文本。这会将输出发送到less
,您可以上下翻页。要退出less
,请键入Q。
当我去谷歌时,我看到(在原始数据包中):
20:42:38.179759 IP ufbt.local.56852 > sea09s02-in-f3.1e100.net.www: Flags [P.], seq 1:587, ack 1, win 913, options [nop,nop,TS val 25523484 ecr 492333202], length 586
E..~.v@.@..q......!#...P.(.gS.c..............u..Xh.GET /generate_204 HTTP/1.1
Host: clients1.google.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) rekonq Safari/534.34
Referer: http://www.google.com/
Accept: */*
Accept-Encoding: gzip, deflate, x-gzip, x-deflate
Accept-Charset: utf-8,*;q=0.5
Accept-Language: en-US, en-US; q=0.8, en; q=0.6
Cookie: PREF=ID=dd958d4544461998:FF=0:TM=1323842648:LM=1360205486:S=Fg_QCDsLMr4ZepIo; NID=67=OQJWjIDHG-B8r4EuM19F3g-nkaMcbvYwoY_CsOjzvYTOAxwqAos5kfzsk6Q14E70gIfJjHat8d8PuQIloB12BE-JuSHgsKHR2QSpgN12qSWoxeqhdcSQgzw5CHKtbR_a
Run Code Online (Sandbox Code Playgroud)
tcpdump
有很多选项来细化数据收集,从指定网络接口到端口到源和目标 IP 地址。它无法解密(因此它不适用于 HTTPS)。
一旦您知道自己感兴趣什么,您就可以使用许多选项tcpdump
来仅记录感兴趣的数据。一般策略是首先记录所有数据包,查看原始数据,然后仅捕获感兴趣的数据包。
一些有用的标志(选项):
-i Specify an interface
-i eth0
tcp port xx
tcp port 80
dst 1.2.3.4
specify a destination ip address
Run Code Online (Sandbox Code Playgroud)
使用tcpdump
和学习如何分析您收集的数据都有一个学习曲线。为了进一步阅读,我强烈推荐Daniel Miessler 的tcpdump
Primer with Examples。
Van*_*aro 27
首先tcpflow
从 Ubuntu 官方存储库安装:
sudo apt-get install tcpflow
Run Code Online (Sandbox Code Playgroud)
然后运行此命令以检查标准端口上的所有 HTTP 请求:
sudo tcpflow -p -c port 80
Run Code Online (Sandbox Code Playgroud)
Cru*_*hop 14
我建议你试试Wireshark
请注意,Wireshark 非常先进,因此可能需要一些时间来适应。我已经有几年没有使用它了,但它应该仍然是您所追求的完美 - 如果不是功能太丰富的话。
有关 Wireshark 及其使用方法的信息可以在Wireshark 主页上找到。
归档时间: |
|
查看次数: |
184805 次 |
最近记录: |