关于golang:tcpdump-使用

38次阅读

共计 2993 个字符,预计需要花费 8 分钟才能阅读完成。

TCPDump 能够将网络中传送的数据包齐全截获下来提供剖析,反对针对网络层、协定、主机、网络或端口的过滤。

  • -a 尝试将网络和播送地址转换成名称。
  • -c< 数据包数目 > tcpdump 将在承受到 count 个数据包后退出。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
00:02:01.018648 IP ubuntu.33417 > _gateway.domain: 3978+ [1au] A? sp1.baidu.com. (42)
00:02:01.019195 IP ubuntu.38973 > _gateway.domain: 28848+ [1au] AAAA? sp1.baidu.com. (42)
00:02:01.019313 IP ubuntu.36415 > _gateway.domain: 22020+ [1au] PTR? 2.113.168.192.in-addr.arpa. (55)
00:02:01.021463 IP _gateway.domain > ubuntu.36415: 22020 NXDomain 0/0/1 (55)
00:02:01.021621 IP ubuntu.36415 > _gateway.domain: 22020+ PTR? 2.113.168.192.in-addr.arpa. (44)
00:02:01.022083 IP _gateway.domain > ubuntu.33417: 3978 3/0/1 CNAME www.a.shifen.com., A 36.152.44.96, A 36.152.44.95 (101)
00:02:01.022657 IP ubuntu.60280 > 36.152.44.96.https: Flags [S], seq 4236676010, win 64240, options [mss 1460,sackOK,TS val 2233702947 ecr 0,nop,wscale 7], length 0
00:02:01.022949 IP _gateway.domain > ubuntu.36415: 22020 NXDomain 0/0/0 (44)
00:02:01.023494 IP ubuntu.41742 > _gateway.domain: 44210+ [1au] PTR? 128.113.168.192.in-addr.arpa. (57)
00:02:01.025131 IP _gateway.domain > ubuntu.41742: 44210 NXDomain 0/0/1 (57)
10 packets captured
19 packets received by filter
0 packets dropped by kernel
 
  • -d 以容易浏览的模式, 在规范输入上打印出编排过的包匹配码, 随后 tcpdump 进行。
  • -dd 以 C 语言的模式打印出包匹配码.
  • -ddd 以十进制数的模式打印出包匹配码 (会在包匹配码之前有一个附加的 ’count’ 前缀).
  • -e 每行的打印输出中将包含数据包的数据链路层头部信息
  • -f 用数字显示网际网络地址。
  • -F< 表白文件 > 显示内部的 IPV4 地址时,采纳数字形式而不是名字。
  • -i< 网络界面 > 指定 tcpdump 须要监听的接口。
 对规范输入进行行缓冲 (nt: 使规范输出设备遇到一个换行符就马上把这行的内容打印进去). 在须要同时察看抓包打印以及保留抓包记录的时候很有用. 比方, 可通过以下命令组合来达到此目标:``tcpdump  -l | tee dat''或者 ``tcpdump  -l > dat & tail -f dat''.(nt: 前者应用 tee 来把 tcpdump 的输入同时放到文件 dat 和规范输入中, 而后者通过重定向操作 '>', 把 tcpdump 的输入放到 dat 文件中, 同时通过 tail 把 dat 文件中的内容放到规范输入中)

-n 不把主机的网络地址转换成名字。

-N 不列出域名。

-O 不启用进行包匹配时所用的优化代码,当狐疑某些 bug 是由优化代码引起的,此选项将很有用。

-p 不让网络界面进入混淆模式。

-q 疾速输入,仅打印多数的传输协定信息。

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
00:13:59.942508 ARP, Request who-has _gateway tell 192.168.113.1, length 46
00:13:59.943247 IP ubuntu.49403 > _gateway.domain: UDP, length 55
00:13:59.944293 IP _gateway.domain > ubuntu.49403: UDP, length 55
00:13:59.944415 IP ubuntu.49403 > _gateway.domain: UDP, length 44
00:13:59.945881 IP _gateway.domain > ubuntu.49403: UDP, length 44
00:13:59.946588 IP ubuntu.44380 > _gateway.domain: UDP, length 55
00:13:59.947655 IP _gateway.domain > ubuntu.44380: UDP, length 55
00:13:59.947728 IP ubuntu.44380 > _gateway.domain: UDP, length 44
00:13:59.949170 IP _gateway.domain > ubuntu.44380: UDP, length 44
00:13:59.949813 IP ubuntu.53039 > _gateway.domain: UDP, length 57
10 packets captured
13 packets received by filter
0 packets dropped by kernel

-r< 数据包文件 > 从指定的文件读取数据包数据。

-s< 数据包大小 > 设置每个数据包的大小,如果不设置默认将会是 68 字节。

-S 打印 TCP 数据包的顺序号时,应用相对的顺序号,而不是绝对的顺序号。

(注: 绝对顺序号可了解为, 绝对第一个 TCP 包顺序号的差距, 比方, 接受方收到第一个数据包的相对顺序号为 232323, 对于起初接管到的第 2 个, 第 3 个数据包, tcpdump 会打印其序列号为 1, 2 别离示意与第一个数据包的差距为 1 和 2. 而如果此时 -S 选项被设置, 对于起初接管到的第 2 个, 第 3 个数据包会打印出其相对顺序号:232324, 232325).

-t 在每行输入中不打印工夫戳。

-tt 不对每行输入的工夫进行格局解决。

-ttt tcpdump 输入时,每两行打印之间会提早一个段时间

-tttt 在每行打印的工夫戳之前增加日期的打印

-T< 数据包类型 > 强制将表达方式所指定的数据包转译成设置的数据包类型。

-v 具体显示指令执行过程。

-vv 更具体显示指令执行过程。

-x 用十六进制字码列出数据包材料。

-w< 数据包文件 > 把数据包数据写入指定的文件。

公众号:没有幻想的阿巧 后盾回复 “ 群聊 ”,一起学习,一起提高

正文完
 0