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.wlan0
3.usbmon1 (USB bus number 1)
4.usbmon2 (USB bus number 2)
5.usbmon3 (USB bus number 3)
6.usbmon4 (USB bus number 4)
7.usbmon5 (USB bus number 5)
8.any (Pseudo-device that captures on all interfaces)
9.lo
2. tcpdump -i <需要监控的网络适配器编号>,例如我想监控我的无线网卡wlan0,则使用tcpdump -i 2。
root@holmesian-laptop:~# tcpdump -i 2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes
21:24:14.578430 00:24:f9:05:78:00 (oui Unknown) Unknown SSAP 0x78 > 00:1f:3a:18:fa:06 (oui Unknown) Unknown DSAP 0xd8 Information, send seq 0, rcv seq 16, Flags [Command], length 70
21:24:14.578447 00:24:f9:05:78:00 (oui Unknown) Unknown SSAP 0x78 > 00:1f:3a:18:fa:06 (oui Unknown) Unknown DSAP 0xd8 Information, send seq 0, rcv seq 16, Flags [Command], length 223
21:24:14.995603 00:24:f9:05:78:00 (oui Unknown) Unknown SSAP 0x20 > 78:dd:08:d1:b2:ca (oui Unknown) Unknown DSAP 0x76 Information, send seq 0, rcv seq 16, Flags [Command], length 70
21:24:15.019811 00:24:f9:05:78:00 (oui Unknown) Unknown SSAP 0xa6 > 2c:81:58:ec:9c:54 (oui Unknown) Unknown DSAP 0x0a Information, send seq 0, rcv seq 16, Flags [Command], length 72
如果不使用-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下的网络调试涉及多个层面,包括使用专用工具、理解和调整网络配置、分析日志等。掌握这些技能,将有助于我们快速定位和解决网络问题。在使用mNetAssist这样的辅助工具的同时,结合基础命令行工具和...
里面附有安装文档(亲测可用)
下面将详细介绍Tcpdump在Android上的使用和其重要性。 首先,我们要理解什么是Tcpdump。Tcpdump源自于Unix系统,最初设计用于在网络接口层捕获数据包,并以人类可读的形式显示它们的详细信息。在Android平台上,...
在ubuntu环境下,交叉编译tcpdump抓包工具,在出现更新flex bison文件失败如何处理,以及编译报错处理步骤
因此,用户在Windows 7上使用tcpdump的解决方案通常是安装一个虚拟机,如VirtualBox或VMware,然后在虚拟机中运行支持tcpdump的操作系统,如Ubuntu、Debian等。 压缩包内的文件名揭示了一些额外的信息: 1. `...
在实际操作中,可以编写无线网络拓扑的模拟脚本,例如将`examples/tutorial/third.cc`复制到`scratch`目录下并重命名,然后使用`./waf`构建和运行这个新脚本。 6. **真实示例** 除了基本的测试和示例外,还可以...
在Linux中安装Tcpdump通常可以通过包管理器来完成,比如在Debian或Ubuntu系统中使用`sudo apt-get install tcpdump`,而在Red Hat或CentOS系统中则使用`sudo yum install tcpdump`。对于没有预装包管理器的系统,...
tcpdump 是 Linux 命令行下常用的一个抓包工具,记录一下平时常用的方式,测试机器系统是 Ubuntu 12.04。tcpdump 的命令格式为:tcpdump [-i 网卡] -nnAX 表达式。 参数说明: * -i:interface 监听的网卡。 * -nn...
虽然在Windows环境下,Tcpdump通常被WinDump替代,但两者在功能上基本相同。然而,需要注意的是,WinDump可能缺少某些Tcpdump的功能,或者存在安全漏洞。因此,Windows用户在选择使用时需谨慎。 总的来说,Tcpdump...
tcpdump是一款广泛使用的网络数据包分析工具,尤其在Linux环境下,它是系统管理员和网络分析师的得力助手。这个工具能够实时捕获网络接口上的数据包,并根据用户指定的条件进行过滤,显示网络通信的详细信息。...
Ubuntu 下安装 libpcap 库详解 在 Ubuntu 操作系统中,安装 libpcap 库是一件非常重要的事情,因為 libpcap 库是许多网络抓包工具的基础组件,如 tcpdump、Wireshark 等。然而,网上关于安装 libpcap 库的步骤却...
Linux下的sniffer工具--Tcpdump的安装和使用 在网络安全和网络分析领域,嗅探工具起着至关重要的作用。它们允许我们捕获网络流量并进行深入的分析,以诊断问题、监控网络活动或进行安全审计。Tcpdump是Linux环境下...
1. 安装TCPdump:在大多数Linux系统上,可以通过包管理器进行安装,如在Debian或Ubuntu上使用`sudo apt-get install tcpdump`。 2. 执行抓包:运行`sudo tcpdump -i <interface> [filter expression]`,`...
对于基于Debian的发行版(如Ubuntu、Debian),则可以使用`apt-get`命令: ```bash apt-get install -y tcpdump ``` #### 三、tcpdump基本用法 1. **指定网络接口** 使用`-i`选项指定要监听的网络接口。例如,...
在Ubuntu或Debian系统中,可以使用`sudo apt-get install tcpdump`命令;在CentOS或Fedora上,使用`sudo yum install tcpdump`或`sudo dnf install tcpdump`。安装完成后,就可以直接在命令行中使用它。 使用...
例如,在基于Debian的系统(如Ubuntu)上,可以使用`apt`命令: ```bash sudo apt update sudo apt install tcpdump ``` 在基于RPM的系统(如CentOS或Fedora)上,使用`yum`或`dnf`: ```bash sudo yum install ...
对于基于Debian的系统(如Ubuntu),可以使用以下命令: ``` sudo apt-get update ``` 2. **安装依赖**:在安装TCPdump之前,需要确保所有必要的依赖都已安装。对于GCC,可以使用以下命令: ``` sudo apt-get ...
在Ubuntu 12.04中,我们通常使用`tcpdump`工具来捕获网络流量,以分析NFSV4报文。`tcpdump`是一个强大的命令行网络分析工具,能够实时显示网络中的数据包详情。为了抓取NFSV4报文,你可以执行以下命令: ```bash ...
在案例中,我们使用Ubuntu 18.04作为基础环境,确保安装了TCPdump和Wireshark。在Windows系统中,由于Wireshark不支持SSH远程控制,我们需要在本地安装Wireshark并手动导入捕获的网络包文件。通过运行`ping`命令,...
### Linux下Ubuntu 12.04 EU部署详解 #### 一、背景介绍 Ubuntu 12.04 (Precise Pangolin) 是一个长期支持版本(LTS),它提供了稳定且可靠的平台,非常适合服务器和企业级应用。本文将详细介绍如何在Ubuntu 12.04上...