对付 tcpdump 的利用,大部门打点员会分成两类。有一类打点员,他们熟知 tcpdump 和个中的所有标志;另一类打点员,他们仅相识根基的利用要领,剩下工作都要借助参考手册才气完成。呈现这种环境的原因在于, tcpdump 是一个相当高级的呼吁,利用的时候需要对网络的事情机制有相当深入的相识。
在本日的文章中,我想提供一个快速但相当实用的 tcpdump 参考。我交涉到根基的和一些高级的利用要领。我敢必定我会忽略一些相当酷的呼吁,接待你增补在评论部门。
在我们深入相识以前,最重要的是相识 tcpdump 是用来做什么的。 tcpdump 呼吁用来生存和记录网络流量。你可以用它来调查网络上产生了什么,并可用来办理各类百般的问题,包罗和网络通信无关的问题。除了网络问题,我常常用 tcpdump 办理应用措施的问题。假如你发明两个应用措施之间无法很功德情,可以用 tcpdump 调查出了什么问题。 tcpdump 可以用来抓取和读取数据包,出格是当通信没有被加密的时候。
基本常识
相识 tcpdump ,首先要知道 tcpdump中利用的标志(flag)。在这个章节中,我会涵盖到许多根基的标志,这些标志在许多场所下会被用到。
不转换主机名、端标语等
凡是环境下, tcpdump 会实验查找和转换主机名和端标语。
# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:15:05.051896 IP blog.ssh > 10.0.3.1.32855: Flags [P.], seq 2546456553:2546456749, ack 1824683693, win 355, options [nop,nop,TS val 620879437 ecr 620879348], length 196
# tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 16:15:05.051896 IP blog.ssh > 10.0.3.1.32855: Flags [P.], seq 2546456553:2546456749, ack 1824683693, win 355, options [nop,nop,TS val 620879437 ecr 620879348], length 196 |
你可以通过 -n 标志封锁这个成果。我小我私家老是利用这个标志,因为我喜欢利用 IP 地点而不是主机名,主机名和端标语的转换常常会带来困扰。可是,知道操作 tcpdump 转换可能不转换的成果照旧相当有用的,出格是有些时候,知道源流量(source traffic)来自哪个处事器是相当重要的。
# tcpdump -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:23:47.934665 IP 10.0.3.246.22 > 10.0.3.1.32855: Flags [P.], seq 2546457621:2546457817, ack 1824684201, win 355, options [nop,nop,TS val 621010158 ecr 621010055], length 196
# tcpdump -n tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 16:23:47.934665 IP 10.0.3.246.22 > 10.0.3.1.32855: Flags [P.], seq 2546457621:2546457817, ack 1824684201, win 355, options [nop,nop,TS val 621010158 ecr 621010055], length 196 |
增加具体信息
增加一个简朴 -v 标志,输出会包括更多信息,譬喻一个 IP 包的保留时间(ttl, time to live)、长度和其他的选项。
# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:15:05.051896 IP blog.ssh > 10.0.3.1.32855: Flags [P.], seq 2546456553:2546456749, ack 1824683693, win 355, options [nop,nop,TS val 620879437 ecr 620879348], length 196
# tcpdump tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes |