tcpdump命令

概念

  tcpdump是Linux下强大的抓包工具,不仅可以分析数据包流向,还可以对数据包内容进行监听。通过分析数据包流向,可以了解一条连接是如何建立双向连接的。
  tcpdump允许用户(一般是root)拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。

用法及参数

tcpdump [-AennqX] [-i 接口] [-w 存储文件名] [-c 次数] [-r 文件] [所要抓取的数据包格式]
常用选项与参数:
-A    # 数据包的内容以ASCII显示,通常用来抓取WWW的网页数据包
-e    # 使用数据链路层(osi第2层)的MAC数据包数据来显示
-nn   # 直接以IP及port显示,而不用主机名与服务名显示
-q    # 列出较为简短的数据包信息,每一行内容比较精简
-X    # 列出十六进制(hex)以及ASCII数据包内容,对于监听数据包内容很有用
-i    # 后接要监听的网络接口,如eth0/eth1/lo/ppp0等
-w    # 后接文件名,将监听的数据包数据存储到文件中
-r    # 后接文件名,从文件中读出数据,这个文件必须存在,且是由-w所产生的
-c    # 监听的数据包数,如果没有这个参数,tcpdump会一直监听,直到按Ctrl+C为止
 
'host 127.0.0.1'   # 针对单台主机抓包
'net 192.168'      # 针对某个网络抓包
'src host 127.0.0.1' 'dst net 192.168'  # 同时加上源(src)和目标限制(dst)
'tcp port 21'      # 针对通信协议(tcp/udp/arp/ether)、端口检测
 
还可以利用and 与 or 进行数据包的整合显示

常用命令示例

(1) 查看某块网卡的80端口数据包流向

tcpdump -i eth1 port 80 -nn

(2)
监听eth0网卡,且通信协议为port22,目标数据来源为192.168.0.100的数据包的命令
tcpdump -i eth0 -nn 'port 22 and src host 192.168.0.100'

原文地址:https://www.cnblogs.com/wanwanmom/p/9634969.html