[TOC]
0x00 快速入门
描述:tcpdump 命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项 test.pcap 将数据包保存到文件中,方便wireshark以后分析,同时它也是一个学习网络通信协议必备;
[TOC]
描述:tcpdump 命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项 test.pcap 将数据包保存到文件中,方便wireshark以后分析,同时它也是一个学习网络通信协议必备;
[TOC]
描述:tcpdump 命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项 test.pcap 将数据包保存到文件中,方便wireshark以后分析,同时它也是一个学习网络通信协议必备;
1 | #基础语法与选项 |
实际案例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82#示例0. 直接启动tcpdump将监视第一个网络接口上所有流过的数据包
tcpdump
tcpdump -i lo #抓取回环网口的包 ICMP->64bit数据
# ping 127.0.0.1 -c 3
# PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
# 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.018 ms
# 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.047 ms
10:46:14.721374 IP localhost > localhost: ICMP echo request, id 6085, seq 1, length 64
10:46:14.721379 IP localhost > localhost: ICMP echo reply, id 6085, seq 1, length 64
10:46:15.721181 IP localhost > localhost: ICMP echo request, id 6085, seq 2, length 64
10:46:15.721189 IP localhost > localhost: ICMP echo reply, id 6085, seq 2, length 64
10:46:16.721137 IP localhost > localhost: ICMP echo request, id 6085, seq 3, length 64
10:46:16.721145 IP localhost > localhost: ICMP echo reply, id 6085, seq 3, length 64
#示例1.指定网卡与端口抓包病并写入文件
tcpdump -i eth0 -nnX port 21 #指定端口抓包
tcpdump -i eth0 -nnX port 21 -c 12 -vv -w test.pcap #写入到test.pcap文件
tcpdump tcp port 23 host 210.27.48.1 # 监视指定主机和端口的数据包,接收或发出的telnet包
#示例2.读取之前产生的 tcpdump 文件
$ tcpdump -r packets_file.pcap
#示例3.要获取整个网络的数据包
tcpdump -i ens192 net 10.10.107.0/24
# 10:53:24.804535 IP 10.20.172.108.51147 > localhost.localdomain.ssh: Flags [.], ack 1872256, win 16425, length 0
# 10:53:24.804537 IP localhost.localdomain.ssh > 10.20.172.108.51147: Flags [P.], seq 1872256:1872384, ack 3505, win 343, length 128
#示例4.根据IP地址查看报文,不管是作为源地址还是目的地址
$ tcpdump host 192.168.1.100
$ tcpdump -i eth0 src host hostname #只对机器名为hostname的主机的通信数据包进行监视,主机名可以是本地主机,也可以是网络上的任何一台计算机。
#要指定 IP 地址是源地址或是目的地址则使用:
$ tcpdump src 192.168.1.100
$ tcpdump dst 192.168.1.100
tcpdump -i ens192 src 10.20.172.108 -vv -nnX #十六进制展示
# tcpdump: listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
# 10:56:00.410729 IP (tos 0x0, ttl 127, id 29668, offset 0, flags [DF], proto TCP (6), length 40)
# 10.20.172.108.51147 > localhost.localdomain.ssh: Flags [.], cksum 0x097b (correct), seq 362959904, ack 1096206029, win 16425, length 0
#示例5.指定协议查询
tcpdump arp -i ens192 -vv -nnX
# tcpdump: listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
# 11:07:37.543934 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.10.107.222 tell 192.168.3.1, length 46
# 0x0000: 0001 0800 0604 0001 d4a1 48a4 5e07 c0a8 ..........H.^...
# 0x0010: 0301 0000 0000 0000 0a0a 6bde 0000 0000 ..........k.....
#示例7.关键字可以组合起来构成强大的组合条件
tcpdump host helios and \( hot or ace \) # 打印helios 与 hot 或者与 ace 之间通信的数据包
tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) #截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信
tcpdump ip host ace and not helios # 打印ace与任何其他主机之间通信的IP 数据包, 但不包括与helios之间的数据包.
tcpdump ip host 210.27.48.1 and ! 210.27.48.2 #获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
#示例8.指定端口范围的数据包
$ tcpdump tcp portrange 22-125 -nnX -i ens192 #要捕获某个端口或一个范围的数据包
$ tcpdump udp portrange 22-125 -nnX -i ens192 #要捕获某个端口或一个范围的数据包
# 1 packet captured == 捕获的封包数量
# 29 packets received by filter == 被过滤过的总封包个数
# 137 packets dropped by kernel == 被核心所丟棄的封包
#示例9.检查监视通过指定网关的数据,以及到指定端口的TCP或UDP数据包:
tcpdump -i eth0 gateway Gatewayname
tcpdump -i eth0 host hostname and port 80
#示例10.高级网络
# 注意:表达式被单引号括起来了,这可以防止shell对其中的括号进行错误解析
tcpdump net ucb-ether # 打印本地主机与Berkeley网络上的主机之间的所有通信数据包
tcpdump 'gateway snup and (port ftp or ftp-data)' # 打印所有通过网关snup的ftp数据包
tcpdump ip and not net localnet # 打印所有源地址或目标地址是本地主机的IP数据包
#如果本地网络通过网关连到了另一网络,则另一网络并不能算作本地网络。
#示例11:如果使用 VMkernel 接口 vmk0 和位于 10.11.12.13 的 NTP 服务器:
tcpdump-uw -c 5 -n -i network_interface host ntp_server_ip_address and port 123
tcpdump-uw -c 5 -n -i vmk0 host 10.11.12.13 and port 123
你好看友,欢迎关注博主微信公众号哟! ❤
这将是我持续更新文章的动力源泉,谢谢支持!(๑′ᴗ‵๑)
温馨提示: 未解锁的用户不能粘贴复制文章内容哟!
方式1.请访问本博主的B站【WeiyiGeek】首页关注UP主,
将自动随机获取解锁验证码。
Method 2.Please visit 【My Twitter】. There is an article verification code in the homepage.
方式3.扫一扫下方二维码,关注本站官方公众号
回复:验证码
将获取解锁(有效期7天)本站所有技术文章哟!
@WeiyiGeek - 为了能到远方,脚下的每一步都不能少
欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】
或者个人公众号【WeiyiGeek】
联系我。
更多文章来源于【WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少】, 个人首页地址( https://weiyigeek.top )
专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注、转个发、赞个助】,这将对我的肯定,我将持续整理发布更多优质原创文章!。
最后更新时间:
文章原始路径:_posts/系统运维/Linux/常用命令/网络查看类命令/tcpdump快速入门与基础.md
转载注明出处,原文地址:https://blog.weiyigeek.top/2019/6-11-172.html
本站文章内容遵循 知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议