ec2 上的 Tcpdump 看不到所有数据包

Jor*_*dan 5 packet-sniffer tcpdump amazon-ec2 packet-capture packets

我在 Amazon EC2 实例上运行 tcpdump 以监控流向 Nginx 的 HTTP 流量(这只是一个测试框,唯一的资源是示例测试页面)。

使用命令运行 tcpdump

# tcpdump -vn -i any port 80
Run Code Online (Sandbox Code Playgroud)

显示来自浏览器对站点的请求的数据包,但在使用 Python 脚本(使用请求库)或手动制作的数据包(Scapy)访问页面时不显示任何内容

  • 没有运行本地防火墙,并且安全组设置正确。
  • 脚本正常工作:我可以很容易地在本地端捕获 tcpdump 中的事务,并且它们返回状态为 200 OK 的页面。
  • 将数据包直接保存到文件 (-w) 也没有区别,排除了缓冲问题(我相信?)
  • 我也试过查看VLAN是否导致了这个问题,但没有运气;搜索“80”仍然没有结果。

问题:

  1. 什么可能导致 tcpdump 错过这些非常具体的数据包,这些数据包肯定会通过防火墙到达 Nginx 并再次返回?
  2. 为什么从 Firefox 发送的数据包会被看到而脚本发送的数据包会溜走?

谢谢

inn*_*nno 1

尝试使用特定的接口而不是“任何”。该“设备”不能在混杂模式下使用。请参阅 tcpdump 手册页:http://www.tcpdump.org/manpages/tcpdump.1.html