Linux-网络分析-tcpdump

本文介绍tcpdump在Linux系统下的使用方法,包括监听指定网络接口、主机和端口的数据包等实用技巧。同时对比了tcpdump与netstat、lsof等工具的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前边对netstat展开过分析与描述,在linux下 ,那还有其他分析工具嘛?
tcpdump是 Linux 命令行下常用的的一个抓包工具,记录一下平时常用的方式, mac os
tcpdump这个功能参数很多,表达式的选项也非常多,非常强大,不过常用的功能确实不多。详情可以通过man查看系统手册。
在客户端开发的时候,可以使用fiddler或者charles进行抓包分析,更方便吧。

在2g网下或非wifi下,想抓包调试,tcpdump+wireshark,这个组合很不错~
Wireshark (前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
一. tcpdump事例



tcpdump的参数众多 ,如下



(以太网网络图中eth1/0/10 代表网卡一,网卡二,网卡三 lo代表127.0.0.1,即localhost)

二. tcpdump常用操作

默认启动
tcpdump


监视指定网络接口的数据包
tcpdump -i eth1
如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0,下面的例子都没有指定网络接口。


监听指定的主机
$ tcpdump -i eth0 -nn 'host 192.168.1.231'
这样的话,192.168.1.231这台主机接收到的包和发送的包都会被抓取。
$ tcpdump -i eth0 -nn 'src host 192.168.1.231'
这样只有192.168.1.231这台主机发送的包才会被抓取。
$ tcpdump -i eth0 -nn 'dst host 192.168.1.231'
这样只有192.168.1.231这台主机接收到的包才会被抓取。

监听指定端口
$ tcpdump -i eth0 -nnA 'port 80'
上例是用来监听主机的80端口收到和发送的所有数据包,结合-A参数,在web开发中,真是非常有用。

监听指定主机和端口
$ tcpdump -i eth0 -nnA 'port 80 and src host 192.168.1.231'
多个条件可以用and,or连接。上例表示监听192.168.1.231主机通过80端口发送的数据包。

监听除某个端口外的其它端口
$ tcpdump -i eth0 -nnA '!port 22'
如果需要排除某个端口或者主机,可以使用“!”符号,上例表示监听非22端口的数据包。

三.其他
前边叙述过netstat相关分析,那么他们啥区别呢?
tcpdump程序
tcpdump一边从网络读入分组一边显示关于这些分组的大量信息。它还能够只显示与所指定的准则匹配的那些分组。

netstat程序
netstat服务于多个目的:
(1)展示网络端点的状态。
(2)展示某个主机上各个接口所属的多播组。
(3)使用-s选项显示各个协议的统计信息。
(4)使用-r选项显示路由表或使用-i选项显示接口信息。

lsof程序
名字lsof代表“list open files”,即列出打开的文件。
lsof的常见用途之一是找出哪个进程在指定的IP地址或端口号上打开了一个套接口。netstat告诉我们哪些IP地址和端口正在使用中以及各个TCP连接的状态,却没有标识相应的进程。lsof弥补这个缺陷。

相关文章:
tcpdump&wireshark初次使用总结http://www.51testing.com/html/34/361634-938657.html

本文地址:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值