我尝试使用tshark记录发送到名为 myservice 的WebService的每个请求。
当我使用下面的命令时,我可以在输出文件中看到在端口8280(Tomcat)上发送的每个请求:
tshark -n -i eth1 port 8280 -w output.pcap
考虑到我在Tomcat实例中有很多WebServices,我想按服务名称进行过滤,类似:
tshark -n -i eth1 port 8280 -w output.pcap -R 'http.request.uri contains "myservice"'
根据man,看起来我应该使用 -f (捕获过滤器)而不是 -R (显示过滤器),因为你可以&#39 ; t使用 -R 与 -w :
tshark:捕获并保存捕获的数据包时,不支持读取过滤器。
我看了documentation about capture filters,但我看不到办法。我也试过tcpdump但没有成功。
答案 0 :(得分:1)
您可以将ngrep
用于此
sudo ngrep -O output.pcap -i -d eth0 'myservice'
虽然您可能会得到一些误报,具体取决于是否在不适合您的应用程序的无关数据包上找到“myservice”。为避免这种情况,您可能希望应用bpf过滤器来仅grep定向到您的服务/应用的流量
sudo ngrep -O output.pcap -i -d eth0 'myservice' 'tcp dst port 8280'