本文概要: 如果只是在本地进行抓包,可以使用fiddler抓包就可以了,在有些情况下得到服务器上进行抓包,此时就需要使用tcpdump命令了。
1 命令解析
1.1 参数
- i 后面接网卡
- nn 截取包中显示请求ip和端口
- A 可以显示出Http请求所有信息,如参数信息
- w 将截取的信息写入到文件
- x 把中文变成16进制,不使用时,显示”…”
1.2 使用src和dst抓取发送信息和接受信息
1 |
$ tcpdump -i eth0 -nn host 192.168.1.231 |
这样192.168.1.231这台主机接收到的包和发送的包都会被抓取。
1 |
$ tcpdump -i eth0 -nn src host 192.168.1.231 |
这样只有192.168.1.231这台主机发送的包才会被抓取。
1 |
$ tcpdump -i eth0 -nn dst host 192.168.1.231 |
这样只有192.168.1.231这台主机接收到的包才会被抓取。
1.3 监听指定主机和端口
1 |
$ tcpdump -i eth0 -nnA port 80 and src host 192.168.1.231 |
多个条件可以用and,or连接。上例表示监听192.168.1.231主机通过80端口发送的数据包。
2 实例
2.1 使用ducmp抓包
在batac进行抓包,已知mobile调用服务A的接口ip为192.168.228.123
1. 抓取请求发送给服务A的数据,这个命令是用来分析请求服务A的参数
sudo tcpdump -i eth0 -nn dst host 192.168.228.123 -A -w ~/dst
2. 抓取服务A返回的数据,这个命令是用来分析从服务A获取的数据
sudo tcpdump -i eth0 -nn src host 192.168.228.123 -A -w ~/src
3.注意
导出文件时,使用”-w”,不使用”>”,否则使用Wireshark无法打开文件
2.2 使用Wireshark查看tcpdump抓包的数据
1. 为什么使用wireshark来分析tcpdump的结果?
因为tcpdump的请求返回的json的结中如果包含中文,就会显示为…..,所以现在使用Wireshark来显示中文.而且还可以结构化的显示数据
2. 查看抓取的dst文件,查看服务A发送的信息
如下图中,1-表示的请求;2-表示的时HTTP的信息;3-表示post请求的的json类型的参数
3. 查看抓取的src文件,查看服务A返回数据
如下图中,1-表示的请求;2-表示的时HTTP的信息;3-表示的返回的json数据
(全文完)