我在 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”仍然没有结果。
问题:
- 什么可能导致 tcpdump 错过这些非常具体的数据包,这些数据包肯定会通过防火墙到达 Nginx 并再次返回?
- 为什么从 Firefox 发送的数据包会被看到而脚本发送的数据包会溜走?
谢谢