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 监听网络变化
随机推荐
- asp.net web api 权限验证的方法
思路:客户端使用header或者form讲验证信息传入api,在权限验证过滤中进行处理,代码示例: 定义过滤器 public class ApiFilter1 : System.Web.Http.Au ...
- C# 操作符 << 与 >>
1.<< 左移操作符: 左移操作符,将第一个操作数向左移动第二个操作数指定的位数,空出的位置补0.左移相当于乘. 左移一位相当于乘2;左移两位相当于乘4;左移三位相当于乘8. 如:x< ...
- dubbo面试题,会这些说明你真正看懂了dubbo源码
整理了一些dubbo可能会被面试的面试题,感觉非常不错.如果你基本能回答说明你看懂了dubbo源码,对dubbo了解的足够全面.你可以尝试看能不能回答下.我们一起看下有哪些问题吧? 1.dubbo中& ...
- 杰克.多西 twitter创始人 必做清单和不必做清单
必做清单 活在当下 接受脆弱(Be vulnerable) 只喝柠檬水和红酒 每天 6 组下蹲和俯卧撑 每天跑步 3 英里 每天思考本清单 站直了 打拳击沙袋 10 分钟 跟所有人打招呼 每天 7 小 ...
- 14-background
一.background-color:设置该元素的背景颜色 一共有三种:单词.rgb表示法.十六进制表示法 1.rgb:红色 绿色 蓝色 三原色 光学显示器,每个像素都是由三原色的发光原件组成的,靠明 ...
- python入门学习2
变量 变量名就像我们现实社会的名字,把一个值赋值给一个名字时,它会存储在存储中,称之为变量(Variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”. 而Python与 ...
- Java中的包装数据类型
基本类型 包装器类型 boolean Boolean char Character int Integer byte Byte short Short long Long float Float do ...
- html语义化练习易牛课堂代码
html <body> <header> <!-- 导航 --> <nav> <a href=" ...
- Tomcat-servlet基础
1.1 概念 运行在服务器上的小程序 定义了浏览器访问到(tomact)的规则 1.2 步骤 1.3 执行原理 1 当服务器 接收到客户端浏览器的请求后 会解析url地址 获得url路径 ...
- Java学习笔记(十七):构造器和setter方法选用