我在 Apache 服务器(端口 80,无 SSL)上安装了 Web 应用程序。此应用程序的工作是通过从客户端文件传输来收集一些信息。我的目标是检查我的客户端是否发送了正确的文件。因此,我想捕获传输到我的 Apache 的文件,然后检查数据格式是否正确。
我像这样启动 tcpdump:
tcpdump -s0 -i eth0 'port 80' -vv
但是输出不是我想要的。
tcpdump 是否可以在同一台服务器上运行?
答案1
我想你想要网猫(数控),tcpdump用于数据包级别的调试,数控用于重定向网络流量。
这不是一件容易的事(因为存在安全问题),但步骤如下
- 将您的网络服务器移动到另一个端口
- 让 nc 监听端口 80
- 将端口 80 上的传入流量转储到日志中,并将其重定向到您的 Web 服务器正在监听的新端口
此页面有更详细的内容如何去做。
最后,netcat 有 2 个版本。请确保您拥有一个允许您违反几乎所有已知安全规则的版本,并记住只有 root 可以监听低于 1024 的端口。
编辑:tcpdump能执行您要查找的操作,但不会那么直接 - 它会为您提供实际的数据包,听起来您只想要 HTTP 文本。要使用 tcpdump 执行此操作,您需要转储它,然后在类似 wireshark 的程序中打开转储文件。
答案2
Wireshark 更适合于此类任务。您可以运行 cli 版本,tshark
将网络流量捕获到文件中,然后将其复制到您的 PC,使用 GUI wireshark 打开,找到所需的请求并使用 导出export objects
。
Wireshark 还支持使用flagtcpdump
制作的文件-w