tcpdump host 172.16.29.40 and port 4600 -X -s 500

tcpdump采用命令行方式,它的命令格式为:

tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]

[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]

[ -T 类型 ] [ -w 文件名 ] [表达式 ]

1. tcpdump的选项介绍

-a    将网络地址和广播地址转变成名字;

-d    将匹配信息包的代码以人们能够理解的汇编格式给出;

-dd    将匹配信息包的代码以c语言程序段的格式给出;

-ddd    将匹配信息包的代码以十进制的形式给出;

-e    在输出行打印出数据链路层的头部信息;

-f    将外部的Internet地址以数字的形式打印出来;

-l    使标准输出变为缓冲行形式;

-n    不把网络地址转换成名字;

-t    在输出的每一行不打印时间戳;

-v    输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

-vv    输出详细的报文信息;

-c    在收到指定的包的数目后,tcpdump就会停止;

-F    从指定的文件中读取表达式,忽略其它的表达式;

-i    指定监听的网络接口;

-r    从指定的文件中读取包(这些包一般通过-w选项产生);

-w    直接将包写入文件中,并不分析和打印出来;

-T    将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程

调用)和snmp(简单       网络管理协议;)

2. tcpdump的表达式介绍

表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表

达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会

被截获。

在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括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关键字。

第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在

FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和e

ther具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。

其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会

监听所有协议的信息包。

除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,

greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'o

r' ,'||';

这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来

说明。

(1)想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:

#tcpdump host 210.27.48.1

(2) 想要截获主机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 )

(3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包

,使用命令:

#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

(4)如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:

#tcpdump tcp port 23 host 210.27.48.1

3. tcpdump 的输出结果介绍

下面我们介绍几种典型的tcpdump命令的输出信息

(1) 数据链路层头信息

使用命令#tcpdump --e host ice

ice 是一台装有linux的主机,她的MAC地址是0:90:27:58:AF:1A

H219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条

命令的输出结果如下所示:

21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ice.

telne

t 0:0(0) ack 22535 win 8760 (DF)

分析:21:50:12是显示的时间, 847509是ID号,eth0

数据包,eth0 >表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它

表明是从源地址H219发来的数据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的

目的地址是ICE . ip 是表明该数据包是IP数据包,60 是数据包的长度, h219.33357 > ice.

telnet 表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535

表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.

(2) ARP包的TCPDUMP输出信息

使用命令#tcpdump arp

得到的输出结果是:

22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)

22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af

:1a)

分析: 22:32:42是时间戳, 802509是ID号, eth0 >表明从主机发出该数据包, arp表明是

ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:5

8:af:1a是主机ICE的MAC地址。

(3) TCP包的输出信息

用TCPDUMP捕获的TCP包的一般输出信息是:

src > dst: flags data-seqno ack window urgent options

src > dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (F

IN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是

下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针.

Options是选项.

(4) UDP包的输出信息

用TCPDUMP捕获的UDP包的一般输出信息是:

route.port1 > ice.port2: udp lenth

UDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机

ICE的port2端口,类型是UDP, 包的长度是lenth

linux抓包查看请求接口源ip,linux 抓包相关推荐

  1. linux 网络命令 dns,[LN_03] Linux网络环境查看(网卡|路由|DNS|IP)、网络测试命令(端口探测|路由跟踪|抓包|ssh连接)...

    一.Linux网络环境查看命令 1. 查看&临时配置网络状态命令 # 查看IP.MAC.Mask ifconfig # 临时设置指定网卡的网络配置 ifconfig eht0 192.168. ...

  2. 【AWSL】之Linux源代码编译及配置yum源(tar 解包、./configure配置软件模块、make)

    源代码编译 序言 一.源代码概述 1.使用源代码安装软件的优点 2.应用场合举例 3.安装源代码软件为什么使用编译安装 二.编译安装的基本思路 三.配置本地yum源仓库 四.`yum常用命令` 五.` ...

  3. Android 如何在Eclipse中查看Android API源码 及 support包源码

    http://blog.csdn.net/vipzjyno1/article/details/22954775     当我们阅读android API开发文档时候,上面的每个类,以及类的各个方法都是 ...

  4. linux隐藏源ip,linux – NAT后关闭源IP

    直到今天我使用了一个便宜的路由器,所以我可以分享我的互联网连接并保持网络服务器在线,同时使用NAT.用户IP($_SERVER ['REMOTE_ADDR'])很好,我看到用户的A类IP. 但随着流量 ...

  5. linux 虚拟机大量udp请求失败_理解 Linux 网络栈:Linux 网络协议栈简单总结分析...

    1. Linux 网络路径 1.1 发送端 1.1.1 应用层 (1) Socket 应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的.Linu ...

  6. linux操作系统中查看网络信息的命令,Linux查看系统信息命令盘点

    Linux查看系统信息命令盘点 在Linux系统上有很多操作都是用命令完成的,下面跟yjbys小编一起来看看最新的系统命令吧,希望对大家有所帮助! 1.查看系统内核 uname -a uname -r ...

  7. linux相对路径查看文件是否存在,2 linux笔记 文件目录管理

    2 linux笔记 文件目录管理 2.1 Linux 文件与目录管理 2.1.1 绝对路径: 路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录. 2.1.2 相对路径: ...

  8. 如何在Eclipse中查看Android API源码以及support包源码

    http://my.eoe.cn/futurexiong/archive/181.html 开发第三方Android应用的,大多数人应该还是Eclipse结合ADT来开发.那么大多数时候我们可能希望点 ...

  9. linux查看80端口连接ip,Linux通过netstat命令查看80端口连接数的方法

    服务器上的一些统计数据: 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数 ps -ef|grep httpd| ...

  10. linux 查看目录挂载的ip,Linux挂载IPSAN和FCSAN操作,Linux挂载NFS文件系统

    iSCSI存储挂载 service open-iscsi status 查看iscsi服务状态 service open-iscsi start/stop/restart 启动/停止/重启iscsi服 ...

最新文章

  1. ie 6 对注释标记的一个不稳定的错误
  2. java队列怎么实现线程_Java中利用线程和队列实现入库操作
  3. 相机上的AE AF AWB AEB都表示的是什么?
  4. 如何更改jupyter notebook显示为中文?
  5. android进程优先级的计算
  6. python实现胶囊网络_胶囊网络 -- Capsule Networks
  7. linux部署前后端分离项目命令笔记
  8. JsonCpp测试代码使用新API
  9. hdu 5079 Square
  10. Mageia 7 Beta 3 发布,Mandriva Linux 社区分支
  11. 北京大学生物信息学(8)
  12. 禁忌搜索算法TS求解连续函数最值
  13. numpy.arccos详解
  14. Windows 文件系统格式 Raw格式转换NTFS
  15. 一分钟教你解决——浏览器代理服务器被篡改
  16. android平台支付宝快捷支付
  17. “某某某”was not declared in this scope?报错原因。
  18. HDU 6357 Hills And Valleys(思维 动态规划)
  19. 110报警声+单片机c语言,基于单片机的红外报警系统设计毕业论文.docx
  20. 软件项目如何进行任务分配,减少冲突?

热门文章

  1. 编译原理-第一章:引论
  2. js 正则表达式大全 数字、字符等
  3. html从入门到精通(全)
  4. 安卓逆向 | 某新闻类APP urlSign
  5. slickedit 设置
  6. 微信语音终于可以转发了
  7. java调用chrome内核_selenium中如何测试360等基于chrome内核的浏览器
  8. python官方文档中文版-主页 - Keras 中文文档
  9. C11标准和C++11标准
  10. 中科大EPC自动程序(2022python版)