例如,我有一个在端口 8001 上监听的服务器,一个客户端程序打开一个 TCP 套接字连接到该端口,发送一些二进制数据,我只想捕获实际数据,而不需要任何 TCP/IP 标头(例如 TCP 握手内容)。
使用 tcpdump 可以实现这个功能吗?
答案1
答案2
您可以使用获得类似的结果tcpdump -i any <your_filter> -A
。从人tcpdump:
-A 以 ASCII 格式打印每个数据包(减去其链接级标头)。方便捕获网页。
为了获得更集中的转储(即:删除一些握手包),您可以使用过滤规则,例如tcp-syn
从过滤中删除数据包。
答案3
是的,您可以使用以下命令仅捕获 TCP PUSH 消息:
sudo tcpdump "tcp[tcpflags] & (tcp-push) != 0"
答案4
不,tcpdump 没有提取有效负载(截断报头)的功能。此外,它没有任何关于深入分析应用层数据的内置功能。但您可以将流量写入文件,并使用 wireshark 功能提取实际数据。