新手接触到服务器的时候,还不懂如何去抓包,这时候你需要了解下tcpdump这个工具,下面简单写下教程。
1.tcpdump安装
本文以CentOS7操作系统为例:
# yum install -y tcpdump
2.常用的一个抓包命令
我们使用root命令去获取网路数据包的时候,经常会使用如下的命令获取数据包然后分析。
# tcpdump -vvv -X -i 网卡名 port 端口 -w 存储的文件包.cap
这里需要简单说明下:
- 网卡名:这个可以通过
ifconfig -a
来获取信息
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
XHC20: flags=0<> mtu 0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether 1c:69:7a:65:8d:97
inet6 fe80::470:d15d:41db:3309%en0 prefixlen 64 secured scopeid 0x5
inet 192.168.31.196 netmask 0xffffff00 broadcast 192.168.31.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
一般留意有ip地址的网卡,如上面例子的lo0网卡、en0网卡。服务器一般是lo网卡、eth0网卡,具体以实际服务器配置的网卡信息为准。
- 端口:这个就是你要抓取的交互数据的端口
- 存储cap文件:这里请以
.cap
后缀名进行存储。这是为了方便wireshark软件可以直接打开。
3.其他说明
一般对于初学者,学会抓取http请求,然后分析接口问题是调用者使用错误,还是服务器返回异常。这里不对https数据包进行说明,因为需要证书才能反解密文。
这里再列举一些过滤条件:
- 使用host关键字抓取特定目的地和源 IP 地址的流量。如果要指定是源就变成
src host
,如果是目标地址则使用dst host
。
# tcpdump -vvv -X -i eth0 host 10.10.10.10
- 使用and来表示同时满足条件, 使用or来表示满足其中一个条件即可。
# tcpdump -vvv -X -i eth0 host 10.10.10.10 and port 8080
- 这里说一下回环网卡,如果是本机的服务A到本地服务B的网络包,直接抓lo回环网卡(其中回环网卡名要根据
ifconfig -a
命令实际获取)即可。
# tcpdump -vvv -X -i lo port 8080
- 为了防止数据包不够详细,所以你们可以看到上面的例子都加了
-vvv -X
本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!
欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。