linux tcpdump 使用大全

TCPDUMP(8)    TCPDUMP(8)

NAME
       tcpdump - dump traffic on a network

SYNOPSIS
       tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
      [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
      [ -i interface ] [ -m module ] [ -M secret ]
      [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
      [ -W filecount ]
      [ -E spi@ipaddr algo:secret,... ]
      [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
      [ expression 
      
--------------------------------
-option param       
-s snaplen 指定捕获数据包大小,防止包过大,导致丢失,常用: -s 0  将包大小设置为65535 bytes
-i interface 指定网络接口名 如 eth0 eth1 等等 
-w file 指定文件名,存储捕获结果,可以将捕获结果保存为后缀为pcap文件或cap文件,供wireshark 分析工具分析
-r file 从指定的文件中读取包(这些包一般通过-w选项产生)
-c count 指定捕获包数量,默认是没有限制,一直捕获下去
-l >result.txt 将捕获包定向到文本文件
----------------------------------
-option
-v   输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
-vv   输出详细的报文信息;
-n 不进行地址域名转换
-nn 不进行端口号服务名转换 如port 22转换为ssh 


-X 以16进制和文本两种方式显示数据包内容
--------------------------------------------------
option
   方向:src,dst,src or dst, src and dst
   端口:port value
   范围:host value  单个ip、net netvalue 网络地址(采用192.168.0.0/24格式)、ether  value(MAC地址)、gateway value(网关)
   逻辑:and ,or ,not,&&,!,||
   协议:tcp,udp,ip,arp,icmp 

注意tcpdump 中括号一定要转义 \( \) 例如:
tcpdump -i eth0 host \(192.168.59.1 or 192.168.59.133\) and tcp 
--------------------------------------------------
tcp包相关标志:
   S=SYN,发起连接标志。
   P=PUSH,传送数据标志。
   F=FIN,关闭连接标志。
   R=RESET,异常关闭连接。
   . 表示没有任何标志   通常是只发送ACK报文,实际上ACK标准是1.
   ack    表示确认包。

--------------------------------------------------

1.捕获某个网络接口报文

tcpdump -i eth0


2.捕获某个网口上某个种协议报文

tcpdump -i eth0 tcp


3.捕获某个网口上某个种协议和某个端口报文

   tcpdump -i eth0 tcp port 80


4.tcpdump -i etho src host 192.168.59.11 and dst port 22

5.tcpdump -i etho src net 192.168.59.0/24 and dst port 22

6.查看捕获数据包文件
  [root@localhost ~]# tcpdump -r my.pcap
  reading from file my.pcap, link-type EN10MB (Ethernet)
  09:39:19.264188 ARP, Request who-has 192.168.59.133 tell 192.168.59.1, length 46
  09:39:19.264275 ARP, Reply 192.168.59.133 is-at 00:0c:29:27:f4:a8 (oui Unknown), length 28

7.tcpdump -i etho src host 192.168.59.11 and dst port 22 -c 500 -w ssh.pcap
  
8.tcpdump -i eth0 tcp port 22 -n -nn -l >tcp.dump
 
---------------------------------------
1.抓eth1的包 
tcpdump -i eth1 -w /tmp/xxx.cap 

2.抓192.168.1.123的包 
tcpdump -i eth1 host 192.168.1.123 -w /tmp/xxx.cap 

3.抓192.168.1.123的80端口的包 
tcpdump -i eth1 host 192.168.1.123 and port 80 -w /tmp/xxx.cap 

4.抓192.168.1.123的icmp的包 
tcpdump -i eth1 host 192.168.1.123 and icmp -w /tmp/xxx.cap 

5.抓192.168.1.123的80端口和110和25以外的其他端口的包 
tcpdump -i eth1 host 192.168.1.123 and ! port 80 and ! port 25 and ! port 110-w /tmp/xxx.cap 

6.抓vlan 1的包 
tcpdump -i eth1 port 80 and vlan 1 -w /tmp/xxx.cap 

---------------------------------------
1.注意tcpdump 中括号一定要转义 \( \)
 tcpdump -i eth0 dst host 192.168.59.133 and tcp                 
 tcpdump -i eth0 dst host 192.168.59.133 and tcp and dst port 22 
 tcpdump -i eth0 dst net 192.168.59.0/24 and tcp and dst port 22 
 tcpdump -i eth0 host \(192.168.59.1 or 192.168.59.133\) and tcp 

---------------------------------------
A想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
#tcpdump host 210.27.48.1

B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用括号时,一定要进行转义)
#tcpdump host 210.27.48.1 and \(210.27.48.2 or 210.27.48.3 \)

C如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

D如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1

E 对本机的udp 123 端口进行监视 123 为ntp的服务端口
# tcpdump udp port 123

F 系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
#tcpdump -i eth0 src host hostname

G 下面的命令可以监视所有送到主机hostname的数据包:
#tcpdump -i eth0 dst host hostname

H 我们还可以监视通过指定网关的数据包:
#tcpdump -i eth0 gateway Gatewayname

I 如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:
#tcpdump -i eth0 host hostname and port 80

J 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

K 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,
#tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 )

L 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

M 如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1


----------------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值