1、抓取回环网口的包:tcpdump -i lo

2、防止包截断:tcpdump -s0

3、以数字显示主机及端口:tcpdump -n

关键字说明

第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.

第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。

如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。

#tcpdump –i eth0 host hostname and dst port 80  //目的端口是80

或者

#tcpdump –i eth0 host hostname and src port 80  //源端口是80  一般是提供http的服务的主机

如果条件很多的话  要在条件之前加and 或 or 或 not

#tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80

如果在ethernet 使用混杂模式 系统的日志将会记录
May  7 20:03:46 localhost kernel: eth0: Promiscuous mode enabled.
May  7 20:03:46 localhost kernel: device eth0 entered promiscuous mode
May  7 20:03:57 localhost kernel: device eth0 left promiscuous mode
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定 的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和 分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。

除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&;或运算 是'or' ,'||';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。

普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。

# tcpdump
tcpdump: listening on fxp0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=430000 0000 0080 0000 1007 cf08 0900 00000e80 0000 902b 4695 0980 8701 0014 0002000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97ffff 0060 0004 ffff ffff ffff ffff ffff0452 ffff ffff 0000 e85b 6d85 4008 00020640 4d41 5354 4552 5f57 4542 0000 00000000 00

使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网卡时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存

以下是示例:

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 /)

表明在00:02:03点的时候,211.167.237.199通过ssh源端口连接到221.216.165.189的1467端口

#tcpdump -i eth1 src host 211.167.237.199 and dst port 1467
00:09:27.603075 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 180400:180544(144) ack 2833 win 8576
00:09:27.605631 IP 211.167.237.199.ssh > 221.216.165.189.1467: P 180544:180688(144) ack 2881 win 8576

观看网卡传送、接收数据包的状态

$ netstat  -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500  0  14639   0      0      0    5705    119    0     0   BMRUIface:  网卡
RX-OK RX-ERR RX-DRP RX-OVR : 网卡正确接收数据包的数量以及发生错误、流失、碰撞的总数
TX-OK TX-ERR TX-DRP TX-OVR : 网卡正确发送数据包的数量以及发生错误、流失、碰撞的总数

tcpdump 命令详解相关推荐

  1. 【网络编程】Linux tcpdump命令详解---编辑中

    目录 即看即用 详细说明 简介 输出信息含义 链路层头 TCP 数据包 UDP 数据包 SMB/CIFS 解码 AFS 请求和回应 KIP AppleTalk协议 IP 数据包破碎 时间戳 反向过滤 ...

  2. Linux命令大全- tcpdump命令详解

    losbyday 一名热爱开源.朴实的搬运工 Linux tcpdump命令详解 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定 ...

  3. tcpdump命令详解(整理)

    今天门户遇到了超量的链接,整理了一个tcpdump的命令说明,留作备用 簡易使用法: (為了抓到隱藏在 Code 裡的語法, 直接看port有傳什麼資料進來) sudo tcpdump -nnnX   ...

  4. tcpdump命令详解

    基础命令学习目录首页 http://starsliao.blog.163.com/blog/static/89048201062333032563/ TCPdump抓包命令  tcpdump是一个用于 ...

  5. linux的tcpdump命令详解,tcpdump命令

    tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析. 语法tcpdump(选项) 选项-a:尝试将网络和广播地 ...

  6. Linux tcpdump命令详解与Wireshark

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  7. Linux tcpdump命令详解,BPF过滤规则参考

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  8. Linux tcpdump 命令详解

    2019独角兽企业重金招聘Python工程师标准>>> 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络 ...

  9. 转载和积累系列 - Linux tcpdump命令详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  10. Linux抓包工具tcpdump命令详解

    1.简介      用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中 ...

最新文章

  1. stm32内部的CAN总线
  2. web中用纯CSS实现筛选菜单
  3. 电脑ping不通 plsql能连上_台式电脑不能上网手机却能连上wifi无线网络的解决方法...
  4. 回溯算法【0-1背包问题】
  5. python从sqlserver提取数据_通过Python读取sqlserver数据写成json文件的总结
  6. endnote一打开就自动关闭_word mac版如何彻底删除endnote插件?mac版word移除endnote加载项的方法...
  7. HDS业务定义永续IT架构
  8. java面试题43要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以( )
  9. flask 接口 让别人能访问_flask搭建一个前后端分离的系统
  10. python之eval函数,map函数,zip函数
  11. 解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions(译)
  12. OpenCV vs Dlib 人脸检测比较分析
  13. 施乐服务器装系统闪EE,施乐7535755633755575驱动安装教程
  14. 万能弹窗代码,能突破大部分弹窗拦截插件
  15. Android Camera HAL3 - 框架流程预览
  16. oracle数据库报300006,Oracle归档日志所在目录时间不对Oracle集群日志时间显示错误...
  17. Java实用程序设计课后习题 西安电子科技大学
  18. 基于S7–1500的单部六层电梯教程(三)
  19. 首富马斯克裁员大反转。
  20. 视觉目标检测和识别之过去,现在及可能(2017.06.28)

热门文章

  1. jquery改变css样式和vue改变样式的区别
  2. 网络安全等级测评师(初级)——安全物理环境
  3. 云免签个人免签支付源码-wordpress博客平台接口代码
  4. 靶机测试 0s-hackNos-2笔记
  5. 把一个人的特点写具体作文_把一个人的特点写具体作文五年级下册
  6. TOP3!复杂美授权专利与蚂蚁、腾讯同列全国前三
  7. 医保异地报销攻略,全国轻松刷卡就医
  8. 新增一个患者表:患者id,患者名称,既往病史,新增一个挂号表:挂号id,患者id,本次病情
  9. wps打开文件很慢很卡怎么办?
  10. 如何构建Informix分布式数据库访问