ubuntu下tcpdump使用
Ubuntu默认是安装好了tcpdump工具的,如果没有安装的话使用sudo apt-get install tcpdump即可安装。
(如果遇到tcpdump: no suitable device found的问题,检查一下是不是在用root权限运行tcpdump,tcpdump只能在root权限下工作)
安装好tcpdump之后,运行tcpdump:
1. tcpdump -D 获取网络适配器列表,以下是在Ubuntu上获取到的结果:
root@holmesian-laptop:~# tcpdump -D
1.eth0
2.eth1
3.usbmon1 (USB bus number 1)
4.eth2
5.usbmon2 (USB bus number 2)
6.any (Pseudo-device that captures on all interfaces)
7.lo
2. tcpdump -i <需要监控的网络适配器编号>,例如我想监控我的无线网卡eth0,则使用tcpdump -i 1。
root@holmesian-laptop:~# tcpdump -i 2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
20:39:23.081636 ARP, Request who-has 192.168.4.10 tell 192.168.4.253, length 46
20:39:23.082586 IP botnet-virtual-machine.local.65387 > dec3000.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.082965 IP botnet-virtual-machine.local.65387 > ns2.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.083228 IP botnet-virtual-machine.local.65387 > dec3000.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.083484 IP botnet-virtual-machine.local.65387 > ns2.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.083734 IP botnet-virtual-machine.local.65387 > dec3000.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.083988 IP dec3000.xjtu.edu.cn.domain > botnet-virtual-machine.local.65387: 44290 NXDomain* 0/1/0 (78)
20:39:23.084231 IP dec3000.xjtu.edu.cn.domain > botnet-virtual-machine.local.65387: 44290 NXDomain* 0/1/0 (78)
如果不使用-i来定义监控适配器的话,默认使用列表中的第一个;
3. 使用无线网卡wlan0监控IP地址为172.16.86.111上443端口的tcp协议:
tcpdump -i 2 host 172.16.86.111 and tcp port 443
4. 如果想要显示数据包的内容,需要使用-X参数,如,我想要显示捕获的https数据包http header的内容:
tcpdump -X -i 2 host 172.16.86.111 and tcp port 443
显示结果如下:
21:27:53.662741 IP holmesian-laptop.local.44239 > 172.16.86.111.https: Flags [S], seq 24296623, win 5840, options [mss 1460,sackOK,TS val 153804 ecr 0,nop,wscale 6], length 0
0x0000: 4500 003c e463 4000 4006 514a ac10 567e E..<.c@.@.QJ..V~
0x0010: ac10 566f accf 01bb 0172 bcaf 0000 0000 ..Vo.....r......
0x0020: a002 16d0 66a8 0000 0204 05b4 0402 080a ....f...........
0x0030: 0002 58cc 0000 0000 0103 0306 ..X.........
21:27:56.660488 IP holmesian-laptop.local.44239 > 172.16.86.111.https: Flags [S], seq 24296623, win 5840, options [mss 1460,sackOK,TS val 154554 ecr 0,nop,wscale 6], length 0
0x0000: 4500 003c e464 4000 4006 5149 ac10 567e E..<.d@.@.QI..V~
0x0010: ac10 566f accf 01bb 0172 bcaf 0000 0000 ..Vo.....r......
0x0020: a002 16d0 63ba 0000 0204 05b4 0402 080a ....c...........
0x0030: 0002 5bba 0000 0000 0103 0306 ..[.........
.c
可以看到该结果只显示了https头的一部分,没有显示全,是因为tcpdump默认将显示的数据长度截断了,可以使用-s后面加数据长度,来设置数据显示长度:
tcpdump -X -s 0 -i 2 host 172.16.86.111 and tcp port 443
以上的例子中,-s 0 表示自动设置长度使其能够显示所有数据。
5. 捕获的数据太多,不断刷屏,可能需要将数据内容记录到文件里,需要使用-w参数:
tcpdump -X -s 0 -w aaa host 192.9.200.59 and tcp port 8000
则将之前显示在屏幕中的内容,写入tcpdump可执行文件同级目录下的aaa文件中。
文件查看方式如下,需要使用-r参数:
tcpdump -X -s 0 -i 2 -r holmesian host 172.16.86.111 and tcp port 443
如果这样写:
tcpdump -r holmesian
则只能看到最简单的数据传输交互过程,看不到数据包内容,查看时也需要使用相应的参数。
6.总结
总结一下,tcpdump的参数分两个部分,选项(Options)和表达式(expression):
root@holmesian-laptop:~# tcpdump -h
tcpdump version 4.0.0
libpcap version 1.0.0
Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -M secret ] [ -r file ]
[ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ]
[ -y datalinktype ] [ -z command ] [ -Z user ]
[ expression ]
ubuntu下tcpdump使用的更多相关文章
- ubuntu 下wireshark 软件安装与使用
在ubuntu下,使用wireshark也是很有必要的.虽然可以使用tcpdump等工具. ubuntu:11.10 1. sudo apt-get install wireshark ...
- Ubuntu安装Tcpdump
参考:ubuntu下安装Tcpdump并使用 请先安装libpcap等,可以参照上文链接. 安装: 网址:http://www.tcpdump.org/ 解压: tar -zxvf tcpdump-4 ...
- snort简介以及在Ubuntu下的安装
一.简介 Snort是一套开放源代码的网络入侵预防软件与网络入侵检测软件.Snort使用了以侦测签章(signature-based)与通信协议的侦测方法.Snort是一个免费的IDS(入侵监测系统) ...
- ubuntu下sudo命令不再输入密码
ubuntu下普通用户是没有root权限,很多命令在使用时都需要使用命令sudo 'cmd',但系统需要user验证自己,即需要输入普通用户的密码.但普通用户是否有执行该cmd的权限,需要到系统文件/ ...
- 在Ubuntu下搭建ASP.NET 5开发环境
在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...
- 在Ubuntu下搭建Spark群集
在前一篇文章中,我们已经搭建好了Hadoop的群集,接下来,我们就是需要基于这个Hadoop群集,搭建Spark的群集.由于前面已经做了大量的工作,所以接下来搭建Spark会简单很多. 首先打开三个虚 ...
- Ubuntu下开启php调试模式,显示报错信息
在Ubuntu下php的缺省设置是不显示错误信息的,如果程序出错会显示“无法处理此请求的错误提示”,这在开发环境下非常不方便. 其实我们只要编辑下apache的配置文件就好 1.我的apache 配置 ...
- 在Ubuntu下安装ovs-dpdk
在Ubuntu下安装ovs-dpdk 参考资料:https://software.intel.com/zh-cn/articles/using-open-vswitch-with-dpdk-on-ub ...
- Ubuntu 下安装QT
Ubuntu 下安装QT 本文使用的环境 QT Library: qt-everywhere-opensource-src-4.7.4.tar.gz QT Creator: qt-creator-li ...
随机推荐
- Delphi 线程Timer (TThreadTimer)
delphi 自带的Timer控件,使用方便,但它的 OnTimer 事件是在主线程中引发的. 如果在事件中执行较耗时的代码,会引起主界面假死.故实现一个线程的Timer就有必要了. TThreadT ...
- 李维作答 《insideVCL》——李维实在很勤奋,而且勇于突破,从不以旧的内容充数
(编者按)<Inside VCL(VCL核心架构剖析)>一书出版以来,众多热心读者给李维先生.博文视点公司.CSDN写来信件,有更多朋友在各个论坛上发表关于该书的言论.读者们不但盛赞该书, ...
- CC++初学者编程教程(16) 搭建Xcode cocos2dx开发环境
1.下载cocos2dx,也可以从共享目录复制 2.解压缩 3.进入目录 cd Desktop/cocos2d-x-2.2.0/tools/project-creator/ 4.创建项目 ./crea ...
- 百度地图V2.0实践项目开发工具类bmap.util.js V1.4
/** * 百度地图使用工具类-v2.0(大眾版) * * @author boonya * @date 2013-7-7 * @address Chengdu,Sichuan,China * @em ...
- Google地图轨迹回放模拟
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- web站点监控脚本web_status_code,tomcat 80,oracle1521
1,完整的监控脚本如下 #!/bin/bash #web_status_code=`curl -o /dev/null -s -w "http_code:%{http_code}" ...
- rand,randn,randi函数区别
1,rand 生成均匀分布的伪随机数.分布在(0~1)之间 主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数 rand(m,n,'double')生成指定精度的 ...
- FTP的主动模式和被动模式
摘自http://blog.csdn.net/love_gaohz/article/details/50723164 http://my.oschina.net/binny/blog/17469 FT ...
- Iterator(迭代器模式)--(超市管理者)
这个Iterator就是收银台干的活. package patterns.actions.iterator; public interface IteratorList { boolean isEmp ...
- 【最大流】【HDU2883】【kebab】
题意: 有一个烧烤机,每次最多能烤 m 块肉,现在有 n 个人来买烤肉,每个人到达时间为 si,离开时间为 ei,点的烤肉数量为 ci,点的烤肉所需烘烤时间为 di, 每个人要烤的肉可以分成若干份在同 ...