在linux/unix机器上抓包,就要用到tcpdump工具了(mac下这个命令也是直接可用的)。
这个工具和wireshark配合使用效果很不错,tcpdump提供了方便的抓包存储命令,wireshark提供了优秀的解析展示,可以方便包解析后的查看。
使用方法
tcpdump通常是供root用户使用的,如果机器上没有装,可以进行安装。
例如:centos上可以采用下面的命令进行安装。
yum install tcpdump
通常命令执行需要root权限,如果使用其它用户执行的话,需要使用sudo来提升执行权限:例如
[/aaa]$ tcpdump
tcpdump: ioctl(SIOCIFCREATE): Operation not permitted
[/aaa]$ sudo tcpdump tcp port 80
[sudo] password for aaa:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
...
常用的命令
下面主要列了一些个人常用的命令,详细的tcpdump命令可以从参考文档中查看:
写入文件:
-w filename 监听内容写入文件
监听端口设置:
port 80 监听80端口
tcp port 80 tcp80端口
udp port 80 udp80端口
src port 80 来源端口80
dst port 80 发往端口80
监听IP设置:
host 192.168.0.1监听与主机192.168.0.1通信内容
src 192.168.0.1 监听来源自192.168.0.1内容
dst 192.168.0.1 监听发往192.168.0.1内容
监听指定网络接口:
-i eth0 监听eth0接口
注:执行tcpdump -D可以查看支持的接口有那些,例如如下
[/root]# tcpdump -D
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.any (Pseudo-device that captures on all interfaces)
5.lo [Loopback]
命令行支持信息:
执行tcpdump --h可以查看tcpdump支持的命令字有那些,其中-i/-w上面提过,其它命令的使用可以从文章的参考文章中查看。
[root@/home/lcyu/myservice]# tcpdump --help
tcpdump version 4.9.2
libpcap version 1.5.3
OpenSSL 1.0.2k-fips 26 Jan 2017
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
[ -Q|-P in|out|inout ]
[ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
[ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
[ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
[ -Z user ] [ expression ]
常用样例:
- 监听访问wikipad网站的443端口
使用命令:tcpdump host www.wikipedia.org and port 443
带写入文件时:tcpdump host www.wikipedia.org and port 443 -w wike.cap
[/aaa] $ sudo tcpdump host www.wikipedia.org and port 443
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pktap, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
10:35:01.540597 IP bogon.51264 > text-lb.ulsfo.wikimedia.org.https: Flags [P.], seq 1152072059:1152072109, ack 4124909117, win 4096, options [nop,nop,TS val 203068101 ecr 1655401572], length 50
...
- 监听与192.168.0.1的udp协议通信情况
命令:tcpdump host 192.168.0.1 and udp
带写入文件:tcpdump host 192.168.0.1 and udp -w 1udp.cap
[/aaa]$ sudo tcpdump host 192.168.0.1 and udp
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on pktap, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
10:45:46.378370 IP bogon.1024 > broadcasthost.commplex-link: UDP, length 135
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)
参考:https://www.cnblogs.com/chyingp/p/linux-command-tcpdump.html
参考:https://en.wikipedia.org/wiki/Tcpdump