如何使用 tcpdump 捕获整个网站(包括外部服务器)的流量

如何使用 tcpdump 捕获整个网站(包括外部服务器)的流量

我想知道是否可以使用 捕获来自单个网站的所有网络流量tcpdump。我有兴趣捕获来自某个网​​站和发往某个网站的所有传入和传出数据包的大小。然而,类似的东西tcpdump -n host washingtonpost.com只会(我在终端上尝试过)给出来自washingtonpost直接解析服务器的流量,而不是例如所有外部CDNsAdvertising Servers等等。由于我事先不知道这些服务器的IP addresseshostnames这些服务器,因此我无法创建某种过滤器。有谁知道我可以做到这一点的方法或者这是否确实可能?

谢谢。

答案1

这不可能。为什么 ?通信协议 http/https 是这里的关键。 tcpdump“仅”指定用于捕获较低级别的协议。 tcpdump 上没有过滤器来分析动态流量并对过滤器进行扩展。但这对于满足您的要求是必要的。

您可以使用 Web 代理缓存或其他一些“中间”软件。如果 HTTP 是目标,那么使用 Perl 或 Python 脚本也很容易受到阻碍。还需要做一些工作,特别是 HTTPS 情况下的证书。

+------------+ +------------+ +------------+
|网络浏览器 |-----| HTTP/HTTPS |-----| HTTP/HTTPS |
+-------------+ |代理| |服务器|
                    +------------+ +------------+

您可以在 Linux 上使用 iptables 将所有流量重定向到目标端口 80/443 到 Web 代理/“中间人”程序/脚本,或者在 Web 浏览器上使用代理参数。

相关内容