我有一台服务器从交换机上的镜像端口接收流量。连接到此镜像端口的接口处于 promisc 模式。当我在接口上只使用一个简单的捕获所有 tcpdump 时,比如
tcpdump -nn -i eth1
Run Code Online (Sandbox Code Playgroud)
我看到了大量的流量。我什至可以针对某些内容(例如端口 443)进行 grep。
tcpdump -nn -i eth1 | grep 443
Run Code Online (Sandbox Code Playgroud)
显然,这显示了任何包含 443 的内容,而不仅仅是端口 443。我已经目视检查了它,我确实看到了这样的东西:
15:08:08.112550 IP 12.34.56.78.1430 > 87.65.43.21.443: . ack 35124 win 32768
Run Code Online (Sandbox Code Playgroud)
但我只想要端口 443 所以...
tcpdump -nn -i eth1 port 443
...
0 packets captured
Run Code Online (Sandbox Code Playgroud)
奇怪的。当我使用过滤器时,我没有看到任何流量。我尝试过“ip 端口”、“dst 端口”和其他一些过滤器。我也尝试过按 IP 而不是端口过滤。没有。
eth1 Link encap:Ethernet HWaddr 00:24:81:A5:AD:7A
inet6 addr: fe80::224:81ff:fea5:ad7a/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:4114781478 errors:0 dropped:1 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2240970313430 (2.0 TiB) TX bytes:15155497 (14.4 MiB)
Interrupt:98 Memory:fa000000-fa012800
Run Code Online (Sandbox Code Playgroud)
这个界面已经看到了大量的流量。我的过滤器是有效的,对吗?为什么我什么都看不到?
一个可能的原因是 tcpdump 收到了一个数据包,该数据包要么封装到另一个协议中,要么是一个帧,例如已用 VLAN ID 标记。
您在tcpdump
的输出中看不到这一点,因为您没有指定任何详细参数,但是您的过滤器与您port 443
基本上暗示的不匹配not vlan and (proto tcp or proto udp) and port 443
。
您还可以通过使用-xx
和分析帧数据以十六进制转储帧来验证这一点。如果您知道有问题的 VID,只需添加and vlan <VID>
到过滤器即可捕获数据包。
归档时间: |
|
查看次数: |
5912 次 |
最近记录: |