![是否可以查看我通过网络连接发送的字节?](https://linux22.com/image/150224/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E6%9F%A5%E7%9C%8B%E6%88%91%E9%80%9A%E8%BF%87%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%E5%8F%91%E9%80%81%E7%9A%84%E5%AD%97%E8%8A%82%EF%BC%9F.png)
我使用的是 Ubuntu 18.04。我正在调试一个与远程服务器通信的应用程序,我希望能够直接查看从我的机器发送的字节(而不是依赖调试输出)。有没有办法做到这一点?
答案1
查看已经从您的盒子发送的流量?不可能。您可以根据服务器端的日志推断流量(如果您有权访问该服务器,但您将查看“应用层”)
您可以tcpdump
在开始连接之前启动,将所有流量记录到文件中。例子:
tcpdump -i eth0 -w /tmp/tcpdump.pcap host IP.OF.THE.SERVER
使用关键字host
,tcpdump
将进行过滤以仅保存以您要连接的服务器作为源或目标的流量。这将避免使用网络的所有流量创建大文件。-i
代表网络接口,它需要一个有效的网络接口,-w
代表“将原始数据包写入文件”,它需要一个具有写入权限的有效路径。
这将创建一个.pcap
包含所有流量的文件,如果您需要一个不错的 GUI 工具,稍后可以使用 Wireshark 查看该文件。如果您想使用读取该文件,tcpdump
这里已经有一个很好的答案:
如果您的母语是英语,创建更严格的过滤器只需向tcpdump [expression]
.按目标和端口隔离已过滤主机至 80 的示例:
tcpdump -i eth0 -w /tmp/tcpdump.pcap dst host IP.OF.THE.SERVER and dst port 80