1、使用 pktcap-uw 工具

注意:

  1. pktcap 是单向的,且仅默认为入站方向。
  2. 在 vSphere 6.5 及更早版本中,入站流量方向使用 --dir 0 指定,出站流量方向使用 --dir 1 指定。无法同时指定两个方向的流量。但是在 vSphere 6.7 及更高版本中,入站流量方向使用 --dir 0 指定,出站流量方向使用 --dir 1 指定,--dir 2为双向。
  3. 可以并行运行两个(或更多个)单独跟踪,但稍后需要在 wireshark 中合并。

捕获丢弃的数据包:

pktcap-uw --capture Drop [filter_options] [--outfile pcap_file_path [--ng]] [--count number_of_packets]

2、高级用法:同时跟踪多个端口

例如,同时跟踪特定的 vSwitch 端口及其关联的上行链路:

  1. 要获取 vSwitch 端口号,请运行以下命令:net-stats -l
  2. 标识并记下以下参数:

esxtop 命令返回的端口 ID —--switchport 50331665

要跟踪的 vmnic2 物理端口 —--uplink vmnic2 -

pcap 输出文件的位置 —/tmp/vmnic2.pcap

  1. 运行 pktcap-uw 命令,在两个点同时捕获数据包:pktcap-uw --switchport 50331665 -o /tmp/50331665.pcap & pktcap-uw --uplink vmnic2 -o /tmp/vmnic2.pcap &注意:此处假定命令 shell 为 Bash shell。因此,如果在 vswitch 上有多个上行链路,则只需在结尾 & 后添加命令,并在结尾处添加一个 &。
  2. 您可以使用 kill 命令停止pktcap-uw跟踪。kill $(lsof |grep pktcap-uw |awk '{print $1}'| sort -u)
  3. 运行此命令,检查是否所有的pktcap-uw跟踪都已停止:lsof |grep pktcap-uw |awk '{print $1}'| sort -u
3、实操3.1物理网卡抓包

查看物理适配器列表:

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 实用程序支持的所有捕获点。

ESXI主机之pktcap-uw抓包(ESXI主机之pktcap-uw抓包)(1)

-c数目

-C大小

,