是什么 ? | : | a powerful command-line packet(TCP/IP) analyzer. |
开发语言 | : | C |
支持系统 | : | UNIX、Unix-like |
官方主页 | : | http://www.tcpdump.org |
源码仓库 | : | https://github.com/the-tcpdump-group/tcpdump |
操作系统 | 包管理器 | 安装命令 |
---|---|---|
macOS | HomeBrew | brew install tcpdump |
GNU/Linux | HomeBrew | brew install tcpdump |
apt | sudo apt-get install -y tcpdump | |
CentOS | yum | sudo yum install -y tcpdump |
dnf | sudo dnf install -y tcpdump | |
openSUSE | zypper | sudo zypper install -y tcpdump |
Alpine Linux | apk | sudo apk add tcpdump |
pacman | sudo pacman -Syyu --noconfirm | |
Gentoo Linux | Portage | sudo emerge tcpdump |
tcpdump
命令的使用格式如下:
tcpdump [option]... [filter]...
列出所有的网卡。
示例:
指定要监听哪个网卡的数据。这里既可以使用数字,也可以使用名称。参数通过tcpdump --list-interfaces
获得, 如果表示所有网卡,使用any
。
可以指定多个网卡,每个之间用,
隔开。
示例:
tcpdump -i 3
tcpdump -i th0
tcpdump -i any
tcpdump -i th0,th1
表示打印数据的时候以十六进制和ASCII字符两种形式展示。
示例:
表示限制展示数据包的大小。0
表示不限制。
示例:
tcpdump -s 0
过滤器(filter
)是一种表达式,它还能够进行逻辑运算。
示例:
tcpdump -i any -X -s 0 host www.baidu.com and port 80
Android TCPDump
是预编译好的能够直接运行在Android Shell中可执行程序。
Android TCPDump
官网:https://www.androidtcpdump.com
使用前提:
登录Android Shell的时候,必须是以root
用户登录。一般的模拟器都是具有root
权限的, 一般的真机都没有root
权限。您可以使用一些获取root
权限的工具得到root
权限。
使用方法如下:
1、下载可执行文件:
curl -LO https://www.androidtcpdump.com/download/4.9.3/tcpdump
2、通过adb
推送到Android设备中:
adb push tcpdump /data/local/
3、修改为可执行权限:
chmod 755 /data/local/tcpdump
需要注意的是,有些手机系统不支持chmod a+x /data/local/tcpdump
修改权限,只能使用数字。
/data/local/
在PATH
环境变量里面,所以接下来就可以直接执行tcpdump
命令了。