我的服务器使用令牌对某些 API 运行curl 命令。例如:
curl --header "Private-Token: aaaaaaaaaaaaaa" http://mysite.example.com/api/v4/any
tcpdump
我可以使用特定令牌捕获对该 API 的所有请求吗?如果是这样,怎么办?其他想法也很棒。
答案1
要使用 监听 HTTP 流量tcpdump
并查看实际数据包内容,您可以使用以下命令:
sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com"
然而,对数据的过滤只能在特定的数据包位置进行,tcpdump
并且在这种情况下是不可行的。
因此,此外,您还可以使用ngrep
来监听线与网络接口上的特定字符串数据。
sudo ngrep -q "Private-Token: aaaaaaaaaaaaaa" "port 80 and host mysite.example.com"
至于实际的主机/端口过滤器,请参阅有关tcpdump
/BPF 过滤器的(简短)摘要:TCPDUMP 表达式
另外,wireshark
@StephenHarris 的推荐非常好,因为它有一个图形界面。要将tcpdump
原始数据写入文件以供以后在 中使用wireshark
,您可以执行以下操作:
sudo tcpdump -X -s 1500 "port 80 and host mysite.example.com" -w mycapture.pcap
您还可以使用 捕获应用程序级别的数据包请求sysdig
。 (未经测试不太确定答案)
sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains "Private-Token: aaaaaaaaaaaaaa"