抓包

tcpdump命令:
1、指定接口(-i)
    tcpdump -i eth0
2、指定ip地址(host),可以辅加and,or,!等逻辑符,以及src,dest等表示方向。
三次握手过程分析
    在主机A上开启SSHD服务,此时不要有任何客户端主机来连接主机A的SSHD服务,这样是为了抓包更清楚。
主机A执行:tcpdump port 22 -c 3 -n -S
#打印序列号 -S     Print absolute, rather than relative, TCP sequence numbers.
#port 端口号
-c 抓几个包
-n 不解析端口号为协议名

主机B执行:yum install telnet -y #安装telnet
telnet 192.168.1.23 22 #连接主机A的22端口                             


[root@zq ~]# tcpdump -h
tcpdump version 4.1-PRE-CVS_2012_02_01
libpcap version 1.4.0
Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
        [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
        [ -i interface ] [ -M secret ] [ -r file ]
        [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ]
        [ -y datalinktype ] [ -z command ] [ -Z user ]
        [ expression ]
eg:
[root@zq ~]# tcpdump port 22 -c 3 -n -S
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
21:18:05.554990 IP 192.168.1.100.61883 > 192.168.1.23.ssh: Flags [S], seq 919487421, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
21:18:05.555081 IP 192.168.1.23.ssh > 192.168.1.100.61883: Flags [S.], seq 281122195, ack 919487422, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
21:18:05.555379 IP 192.168.1.100.61883 > 192.168.1.23.ssh: Flags [.], ack 281122196, win 256, length 0
3 packets captured
3 packets received by filter
0 packets dropped by kernel


tshark -w filename -i eth0 -q
-w    将抓包的数据写入文件filename中
-i    指定要抓包的接口名称
tshark -r filename
-r 指定要读取的包文件
-V 将包尽可能的解析(这个有时在包数量很多的情况下可以不使用,这样它会给出一个很简洁的报文解释)
原文地址:https://www.cnblogs.com/zq6041/p/6978552.html