TCPDump:捕获和记录特定协议/端口

时间:2020-01-09 10:43:50  来源:igfitidea点击:

问题描述:如何在Linux/UNIX下使用TCPDump工具捕获特定协议或者端口,例如80(http)?
如何使用TCPDump记录流量并在以后发现问题?

解决方法:TCPDump是用于网络监视和数据获取的工具。
它可以节省大量时间,并可以用于调试网络或者服务器相关的问题。

Tcpdump在网络接口上打印出与布尔表达式匹配的数据包内容的描述。

监控eth1接口上的所有数据包

tcpdump -i eth1

监视端口80(HTTP)上的所有流量

tcpdump -i eth1 'port 80'

监视端口25(SMTP)上的所有流量

tcpdump -vv -x -X -s 1500 -i eth1 'port 25'

其中:

  • -vv:更详细的输出
  • -x:在分析和打印时,除了打印每个数据包的标题外,还要打印每个数据包的数据。
  • -X:解析和打印时,除了打印每个数据包的标题外,还要以十六进制和ASCII格式打印每个数据包的数据(减去其链接级别的标题)。这对于分析新协议非常方便。
  • -s 1500:Snarf从每个数据包中获取数据的字节数,而不是默认值68。这对于查看大量信息很有用。
  • -i eth1:监视eth1接口

使用cronjobs捕获交通信息

tcpdump可用于发现攻击和其他问题。
让我们说您的网络服务器每天在午夜都面临问题。
在cron中输入以下命令。
它将计划捕获30,000个数据包并将原始数据写入名为port.80.debug.txt的文件:

@midnight /usr/sbin/tcpdump -n -c 30000 -w /root/port.80.debug.txt

第二天,您可以登录到框并阅读/root/port.80.debug.txt文件:

tcpdump -X -vv -r /root/port.80.debug.txt

可以使用这种简单的技术来记录和调试问题。