10.22 tcpdump:监听网络流量
【功能说明】
【语法格式】
使用范例
不加参数运行tcpdump命令监听网络。
[root@lewen ~]# tcpdump #默认清况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
... 使用tcpdump命令时,如果不输入过滤规则,则输出的数据量将会很大。 精简输出信息。 [root@lewen ~]# tcpdump -q
::32.963134 IP lewen.ssh > 10.0.0.1.: tcp
::32.963256 IP lewen.ssh > 10.0.0.1.: tcp
::32.963325 IP 10.0.0.1. > lewen.ssh: tcp
::32.963390 IP lewen.ssh > 10.0.0.1.: tcp
::32.963492 IP lewen.ssh > 10.0.0.1.: tcp
::32.964604 IP lewen.ssh > 10.0.0.1.: tcp [root@lewen ~]# tcpdump -c #使用-c选项指定监听的数据包数量,这样就不需要使用Ctrl+C了。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::50.191752 IP lewen.ssh > 10.0.0.1.: Flags [P.], seq :, ack , win , length
::50.192434 IP lewen. > public1.alidns.com.domain: + PTR? 1.0.0.10.in-addr.arpa. ()
::50.245211 IP 10.0.0.1. > lewen.ssh: Flags [.], ack , win , length
::50.257155 IP public1.alidns.com.domain > lewen.: NXDomain // ()
::50.258230 IP lewen. > public1.alidns.com.domain: + PTR? 81.0.0.10.in-addr.arpa. ()
packets captured
packets received by filter
packets dropped by kernel
监听指定网卡收到的数据包
[root@lewen ~]# tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::33.924611 IP 10.0.0.1. > lewen.ssh: Flags [.], ack , win , length
::33.924679 IP lewen.ssh > 10.0.0.1.: Flags [P.], seq :, ack , win , length
::33.924776 IP lewen.ssh > 10.0.0.1.: Flags [P.], seq :, ack , win , length
::33.924834 IP 10.0.0.1. > lewen.ssh: Flags [.], ack , win , length
::33.924901 IP lewen.ssh > 10.0.0.1.: Flags [P.], seq :, ack , win , length
::33.929182 IP lewen.ssh > 10.0.0.1.: Flags [P.], seq :, ack , win , length
::33.931108 IP 10.0.0.1. > lewen.ssh: Flags [.], ack , win , length
::33.931140 IP lewen.ssh > 10.0.0.1.: Flags [P.], seq :, ack , win , length ::33.931140:当前时间,精确到微秒。
IP lewen.ssh > 10.0.0.1.:从主机lewen的SSH端口发送数据到10.0.0.1的10662端口,“>”代表数据流向。
Flags[P.]:TCP包中的标志信息,S是SYN标志的缩写,F(FIN)、P(PUSH)、R(RST)、"."(没有标记)。
seq:数据包中的数据的顺序号。
ack:下次期望的顺序号。
win:接收缓存的窗口大小。
length:数据包长度。
监听指定主机的数据包
[root@lewen ~]# tcpdump -n host 10.0.0.1 #<=使用-n选项不进行DNS解析,加快显示地度。监听指定主机的关键字为host,后面直接接主机名或了IP地址即可。本行命令的作用是监听所有10.0.0.1的主机收到的和发出的数据包。 [root@lewen ~]# tcpdump -n src host 10.0.0.1 #<-只监听从10.0.0.1发出的数据包,即源地址为10.0.0.,关键字为src(source,原地址)。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::55.821984 IP 10.0.0.1. > 10.0.0.7.ssh: Flags [.], ack , win , length
::55.866408 IP 10.0.0.1. > 10.0.0.7.ssh: Flags [.], ack , win , length
::55.907580 IP 10.0.0.1. > 10.0.0.7.ssh: Flags [.], ack , win , length
::55.950705 IP 10.0.0.1. > 10.0.0.7.ssh: Flags [.], ack , win , length
::55.991940 IP 10.0.0.1. > 10.0.0.7.ssh: Flags [.], ack , win , length
::56.032129 IP 10.0.0.1. > 10.0.0.7.ssh: Flags [.], ack , win , length [root@lewen ~]# tcpdump -n dst host 10.0.0.1 #<==只监听10.0.0.1收到的数据包,即目标地址为10.0.0.,关就字为dst(destination,目的地)。
::13.074240 IP 10.0.0.7.ssh > 10.0.0.1.: Flags [P.], seq :, ack , win , length
::13.074331 IP 10.0.0.7.ssh > 10.0.0.1.: Flags [P.], seq :, ack , win , length
监听指定端口的数据包
[root@lewen ~]# tcpdump -nn port #使用-n选项不进行DNS解析,但是其会将一些协议、端口进行转换,比如22端口转为ssh。因此本例使用nn 选项。监听指定端口的关键字是port,后面接上端口号即可 ::26.193100 IP 10.0.0.1. > 10.0.0.7.: Flags [.], ack , win , length
::26.193225 IP 10.0.0.7. > 10.0.0.1.: Flags [P.], seq :, ack , win , length
::26.193535 IP 10.0.0.7. > 10.0.0.1.: Flags [P.], seq :, ack , win , length
监听指定协议的数据包。
[root@lewen ~]# tcpdump -n arp #<--监听ARP数据包,因此表达式直接写arp即可。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::43.219758 ARP, Request who-has 10.0.0.96 tell 10.0.0.210, length
::43.511133 ARP, Request who-has 10.0.0.95 tell 10.0.0.210, length
::44.224050 ARP, Request who-has 10.0.0.96 tell 10.0.0.210, length
::44.512986 ARP, Request who-has 10.0.0.95 tell 10.0.0.210, length
::45.230012 ARP, Request who-has 10.0.0.96 tell 10.0.0.210, length [root@lewen ~]# tcpdump -n icmp #<-监听icmp数据包(想要查着下面的监拉数据,可以使用其他机器ping本机即可)
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::31.377258 IP 10.0.0.210 > 10.0.0.2: ICMP 10.0.0.210 udp port unreachable, length
::31.479590 IP 10.0.0.210 > 10.0.0.2: ICMP 10.0.0.210 udp port unreachable, length 常见的协议关键字有ip、arp、icmp、tcp、udp等类型。
多个过滤条件混合使用
前面的几种方法都是使用单个过滤条件过滤数据包,其实过滤条件可以混合使用,因为tcpdump命令支持逻辑运算符and(与)、or(或)、!(非)。 [root@lewen ~]# tcpdump -n ip host 10.0.0.7 and ! 10.0.0.1 #<==获取主机10.0.0.7与所有主机(除了主机10.0.0.1之外)通信的ip数据包。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::42.366445 IP 10.0.0.210. > 10.0.0.7.zabbix-agent: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::42.366483 IP 10.0.0.7.zabbix-agent > 10.0.0.210.: Flags [S.], seq , ack , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::42.366628 IP 10.0.0.210. > 10.0.0.7.zabbix-agent: Flags [.], ack , win , options [nop,nop,TS val ecr ], length
::42.366674 IP 10.0.0.210. > 10.0.0.7.zabbix-agent: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length
::42.366681 IP 10.0.0.7.zabbix-agent > 10.0.0.210.: Flags [.], ack , win , options [nop,nop,TS val ecr ], length
::42.371129 IP 10.0.0.210. > 10.0.0.7.zabbix-agent: Flags [S], seq , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::42.371153 IP 10.0.0.7.zabbix-agent > 10.0.0.210.: Flags [S.], seq , ack , win , options [mss ,sackOK,TS val ecr ,nop,wscale ], length
::42.371313 IP 10.0.0.210. > 10.0.0.7.zabbix-agent: Flags [.], ack , win , options [nop,nop,TS val ecr ], length
::42.371397 IP 10.0.0.210. > 10.0.0.7.zabbix-agent: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr
利用tcpdump抓包详解tcp/ip 连接和断开过程的案例。
- TCP三次握手
- 数据传送
- TCP四次断开
- SYN:(同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。
- ACK:(确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收了所有的数据。
- FIN:(结束标志,FINish)用来结束一个TCP回话。但对应端口仍然处于开放状态,准备接收后续数据。
[root@doit ~]# tcpdump tcp dst port or src 104.243.30.169 -i eth0 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::59.136119 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.136535 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.137177 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.137818 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.138447 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.139087 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.139729 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.140360 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.140996 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.141636 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.142273 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
::59.142908 IP 104.243.30.169. > 111.40.18.151.: Flags [P.], seq :, ack , win , length
10.22 tcpdump:监听网络流量的更多相关文章
- android动态注册监听网络变化异常
在使用广播接收器监听网络变化的时候,在AndroidManifest.xml中加入<user-permission android:name="android.permission.A ...
- Windows Phone 8 获取与监听网络连接状态(转)
原文地址:http://www.cnblogs.com/sonic1abc/archive/2013/04/02/2995196.html 现在的只能手机对网络的依赖程度都很高,尤其是新闻.微博.音乐 ...
- IOS-网络(监听网络状态)
// // BWNetWorkTool.h // IOS_0131_检测网络状态 // // Created by ma c on 16/1/31. // Copyright © 2016年 博文科技 ...
- 通过BroadCast与service时时监听网络变化
首先需要一个service: 这里我定义了一个NetworkStateService,在这个service中我写了一个BroadcastReceiver用于监听网络状态发生改变的情况并在这个servi ...
- IOS-利用AFNetworking监听网络状态
网络环境检测:检测用户当前所处的网络状态 效果图 1.当蜂窝和wifi同时关闭时候 显示为不可达(AFNetworkReachabilityStatusNotReachable)状态 2.打开蜂窝移 ...
- (原创)用Receiver和SystemService监听网络状态,注册Receiver的两种方式
android中网络编程不可避免地要监听网络状态,wifi或者3G以及以太网,并根据当前状态做出相应决策. 在MyReceiver类中的onReceive方法中获得系统服务 ConnectivityM ...
- Android实时监听网络状态(2)
在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒.一般可以通过ConnectivityManager来完成该工作. ConnectivityMana ...
- Android开发之使用广播监听网络状态变化
我们经常需要判断网络状态的变化,如有无网络,所以需要监听网络状态的变化,比如网络断开,网络连接给予友好提示.如何监听网络状态的变化呢,最近工作中需要用到这个,于是就用广播机制来实现了网络状态的监听. ...
- Android 监听网络变化
Android 监听网络变化
随机推荐
- sql server 索引碎片相关问题
1.查看表的索引碎片情况 --改成当前库 use DB_Name --创建变量 指定要查看的表 declare @table_id int set @table_id=object_id('Table ...
- "Native table 'performance_schema'.'session_variables' has the wrong structure") [SQL: "SHOW VARIABLES LIKE 'sql_mode'"]
mysql_upgrade -u root -p--force 升级完重启
- Centos6搭建Samba服务并使用Windows挂载
一.安装相关软件 [root@mail ~]# yum install samba samba-client -y #安装相关软件 二.配置匿名访问 [root@mail ~]# cd /etc/sa ...
- nodejs通过mocha处理运行文件路径下所有js文件
1.获取文件路径: 方式一:整个js文件使用 var path=require('path');var public_path=path.resolve('../testcase/listData/* ...
- 关于连接oracle工具plsql的一些使用
上面图片是打开客户端PL\SQL devepoper的连接内容 进入页面后就可以进行相关的sql语句编写了 将几个结果放入一个表中 select 30+30 as 结果 from dual union ...
- 1. jdk内存配置
-Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m
- python3安装xadmin出现 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3444: illegal multibyte sequence
python3的环境安装xadmin时,直接pip install xadmin出现 Downloading xadmin-0.6.1.tar.gz (1.0MB) 100% |███████████ ...
- SpringCloud-day02-服务消费者项目建立
4.4microservice-ticket-consumer-80服务消费者项目建立 我们新建一个服务器提供者module子模块,类似前面建的common公共模块,名称是 microservice- ...
- java学习笔记(十一):重写(Override)与重载(Overload)
重写(Override) 重写是子类对父类的允许访问的方法的进行重新编写, 但是返回值和形参都不能改变. 实例 class Animal{ public void run(){ System.out. ...
- python 路径处理
1.分解路径名 比如要把xxx/yyy/zzz.py 分解成文件名和目录 两种方法: 一.os.path.split(file) 二.os.path.basename() ; os.path.d ...