在工作或者生活中的网络故障排除时最有力的方式就是抓包分析网络状况,从而找到网络故障的原因。所以将数据包保存到文件中,可以方便得进行分析取证。
数据包的写入命令
tcpdump -w test1.txt
数据包的读取命令
tcpdump -r test1.txt
数据包的多个文件读取
tcpdump -V pack.txt
其中pack.txt中包含多个数据包文件test1.txt,test2.text,test3.txt
停止抓取数据包:
ctrl+c
tcpdump
进程tcpdump -c 5
数据包的状态
captured
当前tcpdump抓取的数据包个数received by filter
系统接收的数据包,tcpdump不一定过滤所有通过系统的数据包,系统数据包多于tcpdump抓取的数据包dropped by filter
tcpdump丢弃的数据包一台网络服务器可能有多个网卡连接不同的网络(可能即连接交换机,又连接路由器),对于分析不同的网络状态,需要针对指定的网卡进行分析
tcpdum -D
root@ubuntu:/home/zhanghuigui/Desktop/tcpdum# tcpdump -D
1.ens33 [Up, Running]
2.any (Pseudo-device that captures on all interfaces) [Up, Running]
3.lo [Up, Running, Loopback]
4.bluetooth0 (Bluetooth adapter number 0)
5.nflog (Linux netfilter log (NFLOG) interface)
6.nfqueue (Linux netfilter queue (NFQUEUE) interface)
7.usbmon1 (USB bus number 1)
8.usbmon2 (USB bus number 2)
其中标记为up的为可以抓取的网卡ifconfig -a
获取网卡信息tcpdum -i ens33
即可默认情况下输出域名,而非ip地址和端口
tcpdum
以及tcpdum host
比如尝试访问百度的公共域名服务器,则只会看到抓取的数据包中包好域名信息,并未有ip地址和端口号
抓取的数据包中格式包含对应主机的ip和端口号
tcpdum -n
或者tcpdump host 180.76.76.76 -n
可以看到如下图中将原来的"域名+服务"转换为 “ip + 端口”,如public-dns-a.baidu.com.http
转换为180.76.76.76.80
-Q
参数,或者--direction
参数也可以tcpdum host 180.76.76.76 -n -Q in
tcpdump host 180.76.76.76 -n -Q out
tcpdump host 180.76.76.76 -n -Q out -i ens33
tcpdump host 180.76.76.76 -n -e
tcpdump host 180.76.76.76 -n -q
tcpdump host 180.76.76.76 -n -X
tcpdump host 180.76.76.76 -n -XX
tcpdump host 180.76.76.76 -n -v
或者tcpdump host 180.76.76.76 -n -vv
或者tcpdump host 180.76.76.76 -n -vvv
;-v
的个数越多,则打印的信息越相信tcpdump icmp -n -v
仅抓取服务器接收到的 icmp协议的数据包
表达式可以用来筛选想要的数据包内容,使用man pcap-filter
包含过滤器的过滤规则和语法
tcpdump的表达式使用规则如下:
tcpdump [option] [not] proto dir type
其中
option
是可选项,代表子命令-Q/-v/-n/-e/-c
not
可选项,表示取反,即表示抓取不符合not之后写的过滤规则的数据包proto
是必选项,表示支持的协议tcp/udp/arp/ip/icmp等
dir
是流入流出控制,src/dst/src and dst/src or dst
type
是筛选特定的ip和端口 host/net/port/portrange
指定的ip,端口号,端口范围筛选tcpdump -n -v dst 180.76.76.76 and tcp
抓取发送终点为180.76.76.76服务器且协议为tcp的数据包
常用的type为:host/port/portrange
tcpdump -q -n host 180.76.76.76
抓取type是host,ip地址为180.76.76.76的数据包
tcpdump -n -v host 180.76.76.76 and port 80
抓取ip地址为180.76.76.76端口为80的数据包
tcpdump -n -v net 180.76 and port 80
抓取范围为180.76.0.0 - 180.76.255.255,端口为80的数据包
tcpdump -n -v dst port 80
筛选目标端口为80端口的数据包
tcpdump -n -v dst port 80 and dst net 180.76
筛选目标端口为80,网段为180.76.0.0-180.76.255.255范围的数据包
本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:【公众号dotNet工控上位机:thinger_swj】基于Socket访问西门子PLC系列教程(一)在完成上述步骤后,接下来就是编写上位机软件与PLC之间进行通信。上位机UI界面设计如下图所示:从上图可以看出...
我有一个大型数据集,列出了在全国不同地区销售的竞争对手产品。我希望通过使用这些新数据帧名称中的列值的迭代过程,根据区域将该数据帧分成几个其他区域,以便我可以分别处理每个数据帧-例如根据价格对每个地区的信息进行排序,以了解每个地区的市场情况。我给出了以下数据的简化版本:Competitor Region ProductA Product...
作为一名IT从业者,我来回答一下这个问题。首先,对于具有Java编程基础的人来说,学习Python的初期并不会遇到太大的障碍,但是要结合自己的发展规划来制定学习规划,尤其要重视学习方向的选择。Java与Python都是比较典型的全场景编程语言,相比于Java语言来说,当前Python语言在大数据、人工智能领域的应用更为广泛一些,而且大...
这段时间通过学习相关的知识,最大的变化就是看待事物更加喜欢去了解事物后面的本质,碰到问题后解决问题思路也发生了改变。举个具体的例子,我在学习数据分析,将来会考虑从事这方面的工作,需要掌握的相关专业知识这个问题暂且按下不表,那哪些具体的问题是我需要了解的呢,以下简单罗列:1、了解数据分析师这个岗位在各个地区的需求情况?2、数据分析师的薪...
这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具。对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不晓的。今天,我们就来认识认识数据分析界鼎鼎大名的 pandas。目录一. pandas主要数据结构 SeriesDataFrame二...