TShark 不捕获来自任何浏览器的 HTTP 请求

TShark doesn't capture HTTP requests from any browser

我看到 Wireshark 可以捕获来自任何地方的所有 HTTP 请求,包括浏览器,尤其是我在内部发起的 POST 请求。但是当我使用 TShark

tshark -F pcapng -w out.pcapng

并尝试阅读这样的结果

tshark -T json -r out.pcapng

未列出这些请求。

我知道这个...

Without any options set, TShark will work much like tcpdump. It will use the pcap library to capture traffic from the first available network interface and displays a summary line on the standard output for each received packet.

但我不知道要设置哪些正确的选项,所以我可以添加那些要检测的请求。 此外,如果这不应该像 Wireshare 一样工作,欢迎使用替代方案。

您没有指定要捕获的接口。来自 tshark man page:

If no interface is specified, TShark searches the list of interfaces, choosing the first non-loopback interface if there are any non-loopback interfaces, and choosing the first loopback interface if there are no non-loopback interfaces.

您应该指定要从中捕获的接口,以确保您在正确的接口上进行捕获。您可以 运行 tshark -D 列出所有接口,然后在 -i 选项中选择合适的接口使用,例如

tshark -i <N> -F pcapng -w out.pcapng

... 其中 <N> 是 运行ning tshark -D.

找到的适当接口的编号

如果您只对 HTTP 流量感兴趣,那么您可能希望限制捕获的数据包以避免捕获不相关的流量。通常,HTTP 流量出现在 TCP 端口 80 上,因此:

tshark -i <N> -F pcapng -w out.pcapng -f "tcp port 80"

如果您仍然没有看到任何 HTTP 流量,则可能是因为在进行捕获时没有可用的 HTTP 流量,或者流量实际上不是 HTTP, but rather HTTPS