我想监控网络接口,但只记录错误、冲突和丢包等信息并将其发送到标准输出。可以配置 tcpdump 来执行此操作吗?
答案1
不。
tcpdump 具有强大的过滤功能,但只有在获得更多数据时才能过滤掉您请求的内容。如果我没有记录原始数据包,我怎么知道数据包是否是重传?应用于 PCAP 捕获的所有逻辑都是由 Wireshark 等在事后完成的,并将整个捕获考虑在内。
您可能更愿意将流量记录到链接文件中,比如 1GB 大小的文件,然后在单独的进程中从命令行运行一些分析工具(如 tshark),逐个文件地分析。您可以从那里获得一些非常好的输出。
例如显示重传的数据包,包括源 IP 和目标 IP:
tshark -Y "tcp.analysis.retransmission" -Tfields -e ip.src -e ip.dst
答案2
netstat -ni
是处理 Tx/Rx 错误(例如在 NIC/驱动程序/OS 级别丢失数据包)的最佳助手。正如他们所说,冲突发生在较低级别,我猜应该在交换机上进行跟踪。
答案3
您可以使用 netstat 结合 watch linux/unix 命令来主动实时查看错误
例如
watch -n 2 netstat -in
如果你确实想记录接口错误,最好从 proc 获取信息
例如使用 eth1
cat /proc/net/dev | grep eth1 >> interface_errors_eth1
- 然后将其作为 cron 作业