注意:
- pktcap 是单向的,且仅默认为入站方向。
- 在 vSphere 6.5 及更早版本中,入站流量方向使用 --dir 0 指定,出站流量方向使用 --dir 1 指定。无法同时指定两个方向的流量。但是在 vSphere 6.7 及更高版本中,入站流量方向使用 --dir 0 指定,出站流量方向使用 --dir 1 指定,--dir 2为双向。
- 可以并行运行两个(或更多个)单独跟踪,但稍后需要在 wireshark 中合并。
- 要获得基本的帮助和语法信息,请使用 -h 选项:# pktcap-uw -h |more
- 要查看对 vmkernel 端口流量的实时捕获:# pktcap-uw --vmk vmkX例如,要捕获 vmk0 上的帧/数据包:# pktcap-uw --vmk vmk0
- 要查看主机 vmnic 上的特定物理网卡的实时捕获:# pktcap-uw --uplink vmnicX例如,要捕获 vmnic7 上的帧/数据包:# pktcap-uw --uplink vmnic7
- 要查看对虚拟机特定 vSwitch 端口的实时捕获,请使用--switchport选项:# pktcap-uw --switchport switchportnumber例如,要捕获在连接到dvSwitchport 8的虚拟机之间往返的帧或数据包:# pktcap-uw --switchport 8
- 要捕获对文件的输出,请使用-o选项:# pktcap-uw --vmk vmk# -ofile.pcap例如,要捕获来自 vmk0 的数据包,并保存到 /tmp 目录下的 test.pcap 文件:# pktcap-uw --vmk vmk0 -o /tmp/test.pcap注意:当您使用 -o 选项时,无论其他设置如何,输出都采用 pcap 格式。要指定 pktcap-uw 运行的秒数,使用 -G <seconds>。要指定 pktcap-uw 运行时需要达到的输出文件大小(单位为兆字节),使用 -C <file_size>。要结束捕获,请务必使用 Ctrl-C 多次,而不是 Ctrl-Z,因为 Ctrl-Z 可能会使后台进程持续运行,从而阻止后续的 pktcap-uw 命令运行,并会报告错误:错误: 无法创建会话,正在退出 (error: Can't create the session, Exiting)
捕获丢弃的数据包:
pktcap-uw --capture Drop [filter_options] [--outfile pcap_file_path [--ng]] [--count number_of_packets]
2、高级用法:同时跟踪多个端口例如,同时跟踪特定的 vSwitch 端口及其关联的上行链路:
- 要获取 vSwitch 端口号,请运行以下命令:net-stats -l
- 标识并记下以下参数:
esxtop 命令返回的端口 ID —--switchport 50331665
要跟踪的 vmnic2 物理端口 —--uplink vmnic2 -
pcap 输出文件的位置 —/tmp/vmnic2.pcap
- 运行 pktcap-uw 命令,在两个点同时捕获数据包:pktcap-uw --switchport 50331665 -o /tmp/50331665.pcap & pktcap-uw --uplink vmnic2 -o /tmp/vmnic2.pcap &注意:此处假定命令 shell 为 Bash shell。因此,如果在 vswitch 上有多个上行链路,则只需在结尾 & 后添加命令,并在结尾处添加一个 &。
- 您可以使用 kill 命令停止pktcap-uw跟踪。kill $(lsof |grep pktcap-uw |awk '{print $1}'| sort -u)
- 运行此命令,检查是否所有的pktcap-uw跟踪都已停止:lsof |grep pktcap-uw |awk '{print $1}'| sort -u
查看物理适配器列表:
esxcli network nic list
查询虚拟机网口对应的物理网卡:
esxtop -> n 与 net-stats -l配合使用通过PORT-ID确认虚拟机eth口与物理网卡的vmnic的对应关系
物理网卡抓包:
pktcap-uw --uplink [vmnic1] -o Snd2-1.pcap (--dir 1:监控离开VDS的数据包;--dir 0:监控进入VDS的数据包 (不指定默认为进入VDS的包) ;--count 100:限制数据包数量)
3.2VDS抓包查看虚拟机端口对应的VDS端口:
esxtop –> n
查看虚拟机VDS入口:
net-stats -l
VDS抓包:
pktcap-uw --switchport [PORT-ID] -o Rcv12.pcap
3.3vmkernel抓包vmknic抓包:
pktcap-uw –vmk vmk0 –c 25 –o vmknic_capture.pcap
3.4常用可选参数--stage {0|1}
捕获更靠近其源或目标的数据包。使用此信息可检查数据包在遍历堆栈中各个点时的变化情况,0 表示更靠近源的流量,1 表示更靠近目标的流量。
--dir {0|1|2}
根据流量相对于虚拟交换机的方向捕获数据包。
0 代表入站流量,1 代表出站流量,2 代表双向流量。
默认情况下,pktcap-uw 实用程序捕获输入的流量。
--capture capture_point
-A | --availpoints
查看 pktcap-uw 实用程序支持的所有捕获点。
-c数目
-C大小
,