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 监听网络变化
随机推荐
- 学习 MeteoInfo二次开发教程(二)
1.注意TSB_Select_Click等几个名称要改为toolStripButton2_Click等. 2.以下代码的位置与public Form1()函数并行. ToolStripButton _ ...
- 可空类型(Nullable)
C# 单问号 ? 与 双问号 ?? ? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的. ...
- 性能测试day05_Jmeter学习
今天来学习下jmeter这个性能测试工具,虽然说性能测试最主要的是整个性能的思路,但是也少不了工具的帮忙,从以前主流的LR到jmeter的兴起,不过对于性能测试来说,个人感觉jmeter比较适合接口性 ...
- MySQL查询当天、本周、本月数据语句
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- leetcode32
class Solution { public: int longestValidParentheses(string s) { ; stack<int> st; ; i < n; ...
- 深度学习原理与框架-Alexnet(迁移学习代码) 1.sys.argv[1:](控制台输入的参数获取第二个参数开始) 2.tf.split(对数据进行切分操作) 3.tf.concat(对数据进行合并操作) 4.tf.variable_scope(指定w的使用范围) 5.tf.get_variable(构造和获得参数) 6.np.load(加载.npy文件)
1. sys.argv[1:] # 在控制台进行参数的输入时,只使用第二个参数以后的数据 参数说明:控制台的输入:python test.py what, 使用sys.argv[1:],那么将获得w ...
- 在delphi中XLSReadWriteII.组件的应用实例(1)
第三方组件:XLSReadWriteII.v.5.20.67_XE3 实例源码如下: unit Unit1; interface uses Winapi.Windows, Winapi.Message ...
- week07 13.4 NewsPipeline之 三 News Deduper
还是循环将Q2中的东西拿出来 然后查重(去mongodb里面把一天之内的新闻都拿出来,然后把拿到的新的新闻和mongodb里一天内的新闻组一个 tf-idf的对比)可看13.3 相似度检查 如果超过一 ...
- 模型介绍之FastText
模型介绍一: 1. FastText原理及实践 前言----来源&特点 fastText是Facebook于2016年开源的一个词向量计算和文本分类工具,在学术上并没有太大创新.但是它的优点也 ...
- m3u8文件什么合成便于播放的MP4的方法
先大家要知道M3U8文件不是一个视频文件,里面全是一些路径,说白了就是一个目录而已,所以要看视频,要找到对应存放视频的文件夹.如果不知道怎么找,可以使用文本格式打开M3U8文件,里面会有路径提示. ...