tcpdump 基础知识

tcpdump是网络调试的重要工具,主要用于捕获和分析网络数据包。本文介绍了tcpdump的基本原理,如与strace的区别,以及在Linux下的抓包原理。详细讲解了tcpdump的命令使用,包括主要选项如协议、网络、主机和端口过滤。通过实例展示了如何抓取特定端口、协议、主机或网络的数据包,并提供了将捕获数据写入文件以便于进一步分析的方法。
摘要由CSDN通过智能技术生成

1. tcpdump的基本原理

1.1  tcpdump starce 的区别

在本机中的进程的系统行为调用跟踪,starce   是一个很好的工具;但是在网络问题的调试中,tcpdump 应该是一个必不可少的工具;能清晰分析网络通信的信息。

默认情况下,tcpdump 不会抓取本机内部通讯的报文   ;根据网络协议栈的规定,对于报文,即使是目的地是本机(自己和自己通信),也需要经过本机的网络协议层,所以本机通讯肯定是通过API进入内核,并且完成路由选择。【比如本机的TCP通信,也必须要socket通信的基本要素:src ip port    dst port】

1.2 linux下tcpdump 抓包的基本原理

Linux 的抓包是通过 注册一种虚拟的底层网络协议来完成网络报文(准确的说是:网络设备)消息的处理权, 当网卡接收到一个网络报文后,它会遍历系统中所有已经注册的网络协议,例如:以太网协议、x25协议处理模块来尝试进行报文的解析处理。这一点和文件系统的挂载相似,就是让系统中所有已经注册的文件系统来进行尝试挂载,如果哪一个认为自己可以处理,那么就完成挂载。
当抓包模块把自己伪装成一个网络协议的时候,系统在收到报文的时候就会这个伪协议一次机会,让它来对网卡收到的报文进行一次处理,此时该抓包模块就会趁机把报文完整的copy一份,然后把这个copy的数据给抓包模块(tcpdump)
 tcpdump 具体的工作原理:协议的注册、网络层对接收报文的处理  : http://tsecer.blog.163.com/blog/static/15018172012822114125900/

2.  tcpdump 命令详解

2.1 tcpdump 命令的基本简介

  • tcpdump :dump the traffic on a network 根据使用者的定义对网络上的数据包进行截获的分析工作;tcpdump 可以讲网络中传送的数据包的header完全截获下来进行分析;它支持对网络层(net  IP 段)、协议(TCP/UDP)、主机(src/dst host)、网络或端口(prot)的过滤,并提供and、or、not 等逻辑语句来帮助你去掉无用的信息。
  • tcpdump:默认情况下,sudo /usr/sbin/tcpdump 会监视 第一个网络接口 一般是eth0 的所有port 所有协议的 数据包

2.2 tcpdump 的主要选项

协议 TCP,UDP,IP,ARP,RARP,ETHER,FDDI
网络(net) 192.168.0.0/16 IP网段
方向(host) src,dst,src or dst,src and dst
端口(prot) 80 22 !22  9999 
逻辑 and,or,not  &&,||,!
  • 协议:tcp udp ip arp rarp ether fddi   协议这选项要放在 前面,因为要过滤数据包
  • 网络:net  ip网段     tcpdump net 192.168.1.0/24   监听这个网段
  • 方向:host  就是主机  src 是源主机、dst 是目的主机 or  and 是逻辑 tcpdump host test.hostname 
  • 端口:port  指定tcpdump 监听的端口  tcpdump src 192.168.1.11 and port 80  监听源IP是192.168.1.11 的80端
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值