tcp 转储传出连接数据包

tcp 转储传出连接数据包

记录所有 tcp 连接数据包的命令语法是什么?

我正在尝试查看我的计算机尝试连接到传出的地址和端口,以便我可以配置防火墙。

答案1

对于此用例,我建议仅捕获尝试启动连接的数据包,而不是所有流量。这将是仅设置了 SYN 标志的任何内容。

tcpdump -ni ${INTERFACE} -w ~/synconnections.pcap tcp[13] == 2 and src host ${MYIP}

我抄袭的大部分来自tcpdump 手册页。标记为“使用特定标志组合(SYN-ACK、URG-ACK 等)捕获 TCP 数据包”的部分详细介绍了标志的含义(设置为 2 值的第 13 个八位字节是 SYN)。

另外,我不确定您正在使用什么数据包过滤解决方案,但您应该检查它是否具有日志记录功能。默认拒绝所有,然后允许 http/https/ssh 并检查日志以查看还有哪些内容被阻止。

答案2

如果通过记录传出 TCP 数据包意味着将它们以 PCAP 格式写入磁盘,则可以使用以下命令:

$ tcpdump -nni eth0 -w outgoing-tcp.pcap ip src 192.168.1.1 and tcp

将接口替换为您机器的接口,将 IP 地址替换为您机器的 IP 地址。根据您使用的 tcpdump 版本(例如较旧的版本),如果您想记录整个数据包而不是将其截断为 96 字节,您可以添加“-s 0”选项,该选项将 snaplength 设置为不截断数据包。不过,在最近的 tcpdump 版本中,您可能不需要这些,因为在大多数(如果不是全部)平台上它默认为 65535。

相关内容