1.网络接口的命名
这里并不存在一定的命名规范,但网络接口名字的定义一般都是要有意义的。例如:
eth0: ethernet的简写,一般用于以太网接口。
wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。
ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。
lo: local的简写,一般指本地环回接口。
lo接口的作用
本地一个进程发起连接,到一个本地的daemon监听的内网IP地址(eth1: 10.1.1.1)的端口(8085),此时在eth1上是抓不到包的,在 lo 上抓到,说明使用的是本地回环接口lo,而网络层的IP地址则是内网IP地址.
lo其实是一个系统虚拟的环回接口,它的IP地址是127.0.0.1,利用这个接口可以实现系统内部发送和接收数据,所以一般情况下我们使用:ping 127.0.0.1 是可以ping通的,因为这其实就是系统内部建立连接。
127.0.0.1,通常被称为本地回环地址(Loop back address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。通常在不安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。
其主要作用有两个:
- 一是测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和IP协议安装都没有问题;
- 另一个作用是某些SERVER/CLIENT的应用程序在运行时需调用服务器上的资
tcpdump是一个最基本重要的网络分析工具, 掌握好这, 对于学习tcp/ip协议也是很有帮助的. 理解了tcp/ip协议栈的知识, 分析调优网络的能力才会更高. 所以使用tcpdump相比其它的工具, 更能帮我们理解协议.
- -n不要转换一些数值, 比如把80端口转换成http显示.
- -i需要监控的网卡. 如果不指定, 则监控所有有效的网卡数据.
- -c抓取多少个包后自动停止抓取
- -s默认是只抓取96bytes的数据, 如果想要抓取更多的数据, 则要通过这指定更大的数值. 比如-s 1500抓取1500byte,设置为0就是不限制。
- -S默认每个包的sequence是显示相对的值, 如果想显示绝对值, 通过此选项打开.
- -D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后。
- -A 数据包的内容以 ASCII 显示,通常用来捉取WWW的网页数据包资料
-X 数据包内容以十六进制 (hex)和ASCII显示,对于监听数据包内容很有用
-XX 比-X输出更详细
过滤表达式
我们抓包时, 一般是有针对性的去关注感兴趣的东西, 不然太多的信息会对我们分析数据造成干扰, tcpdump支持过滤语法.
host指定主机, 可以是ip或者域名.
|
|
tcpdump -s0 -i wlan0 host www.baidu.com |
上面的功能是抓取本机网卡wlan0上和www.baidu.com这个主机打交道的数据. 其中-s0指定抓取所有数据, 查考前面选项介绍.
dst, src
有时候我们只关心数据流其中一个方向上的数据, 可以通过src: 源端, dst:目的端来指定过滤.
|
|
tcpdump -i wlan0 dst www.baidu.com |
port
指定端口
|
|
tcpdump -i wlan0 port 6379 |
抓取redis的数据.
协议
指定协议数据, 比如: tcp, udp, icmp
|
|
tcpdump -i wlan0 tcp and udp |
范例:
# 源主机是192.168.1.34, 并且目标端口是80
tcpdump -i eth0 src 192.168.1.34 and dst port 80
# 所有tcp协议并且端口不是22
tcpdump -i eth0 tcp and not port 22
# 源主机是192.168.1.34并且目标端口是22或者3389
tcpdump -i eth0 'src 192.168.1.34 and (dst port 22 or 3389)'
# 抓取带有SYN标志的数据, tcp[13]的意思是从tcp数据包头中取第14个byte数据, 详细参考tcp协议头
sudo tcpdump -i wlan0 'host www.baidu.com and tcp[13]&2!=0'
一般在服务器上截取到数据包后, 用于之后的分析, 比如传到本地机器后用wireshark分析. 可以通过-w选项保存:
|
|
tcpdump -i eth0 src www.baidu.com -w file.cap |
来源:https://www.cnblogs.com/jcli/p/4248145.html
https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
常用命令:
这个命令的含义是使用 tcpdump 工具来捕获通过网络接口 eth0 发出的所有端口为 80 的 TCP 流量,这些流量是服务器向外发起的请求(出站连接)。让我解释一下命令中的各个部分:
- tcpdump: 这是一个网络抓包工具,用于捕获网络数据包并进行分析。
- -i eth0: 这部分指定了要监听的网络接口,即 eth0。在 Linux 系统中,网络接口通常以 ethX 的形式命名,其中 X 是一个数字,表示不同的网络接口。
- 'tcp port 80 and outbound': 这是过滤规则,指定了要捕获的数据包的特定条件。在这里,它表示捕获目标端口为 80 的 TCP 数据包,并且这些数据包是出站连接,即服务器主动发起的请求。
综合起来,这个命令的作用是在服务器上监听网络接口 eth0,捕获服务器发出的目标端口为 80 的 TCP 数据包,这些数据包代表着服务器向外部发起的 HTTP 请求。
tcpdump -i any -w http_traffic.pcap -A &
- tcpdump: 这是用于捕获网络数据包的命令行工具。
- -i any: 这个部分指定了要捕获的网络接口。在这种情况下,它表示捕获所有可用的网络接口上的数据包。
- -w http_traffic.pcap: 这一部分将捕获的数据包写入到名为 http_traffic.pcap 的文件中,这是一个网络数据包的标准保存格式,可以在其他网络分析工具中进行分析。
- -A: 这个选项表示将捕获的数据包以文本形式显示,而不是以默认的十六进制形式显示。
- &: 这个符号在大多数Unix类系统中用来表示将命令放入后台运行,这样你可以在终端上执行其他命令而不必等待这个命令完成。
共有 0 - tcpdump