我的路由器的 IP 是 192.168.0.1。
我如何记录它在 http 和 https(端口 443)下接收的所有流量?
我认为使用 tcpdump 应该可以解决问题,但我不确定如何运行它
答案1
首先,需要获取路由器的以太网硬件地址(因为通过它发送的流量可以通过发送到这个链路层地址来识别):
$ arp -n 192.168.0.1
? (192.168.0.1) at 0:12:34:56:78:9a on en0 ifscope [ethernet]
然后使用这个地址告诉 tcpdump 要寻找什么:
sudo tcpdump 'ether host 0:12:34:56:78:9a and not host 192.168.0.1 and (port http or https)'
请注意,需要使用引号来防止 shell 被括号绊倒。此外,如果您省略该and not host 192.168.0.1
部分,它将包括流量到路由器(即它会显示你打开路由器的基于 Web 的配置界面)以及通过最后,如果您碰巧有为 192.168.0.1 定义的 DNS 或 /etc/hosts 名称,则可以使用 tcpdump 的网关原语 ( sudo tcpdump 'gateway somename and (port http or https)'
),但它不适用于 IP 地址。
编辑:这将仅报告通过运行它的计算机的流量——通常只是往返于该计算机的流量。如果您想查看通过路由器的流量全部本地局域网上的主机,您需要设置一些机制,以便将所有这些数据包发送到您的捕获计算机。WireShark 文档有一个很好地讨论了各种选择为了这。