TCPDump
1.0、参考
1.1、TCPDump简介
是什么 ?:a powerful command-line packet(TCP/IP) analyzer.
开发语言:C
支持系统:UNIXUnix-like
官方主页:http://www.tcpdump.org
源码仓库:https://github.com/the-tcpdump-group/tcpdump
1.2、通过包管理器安装TCPDump
操作系统包管理器安装命令
macOSHomeBrewbrew install tcpdump
GNU/LinuxLinuxBrewbrew install tcpdump
aptsudo apt-get install -y tcpdump
CentOSyumsudo yum install -y tcpdump
dnfsudo dnf install -y tcpdump
openSUSEzyppersudo zypper install -y tcpdump
Alpine Linuxapksudo apk add tcpdump

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm tcpdump
Gentoo LinuxPortagesudo emerge tcpdump
1.3、通过编译源码安装TCPDump
1.4、tcpdump命令

tcpdump命令的使用格式如下:

tcpdump [option]... [filter]...
1.4.1、--list-interfaces

列出所有的网卡。

示例:

1.4.2、-i <num|name>

指定要监听哪个网卡的数据。这里既可以使用数字,也可以使用名称。参数通过tcpdump --list-interfaces获得, 如果表示所有网卡,使用any

可以指定多个网卡,每个之间用,隔开。

示例:

tcpdump -i 3
tcpdump -i th0
tcpdump -i any
tcpdump -i th0,th1
1.4.3、-X

表示打印数据的时候以十六进制和ASCII字符两种形式展示。

示例:

1.4.4、-s <num>

表示限制展示数据包的大小。0表示不限制。

示例:

tcpdump -s 0
1.4.5、过滤器(filter)

过滤器(filter)是一种表达式,它还能够进行逻辑运算。

示例:

tcpdump -i any -X -s 0 host www.baidu.com and port 80
1.5、Android TCPDump

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命令了。