1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

tcpdump-tcpdump安装和使用

介绍

作为一名网络运维人员,我们经常需要使用一些网络工具来排查网络相关问题。其中一个非常常用的工具就是 tcpdump。

tcpdump-tcpdump安装和使用

tcpdump 是一个强大且复杂的命令,在 linux 操作系统中可用于抓取网络流量,对于排查网络问题非常有帮助。

使用方法

tcpdump 一般在 Linux 发行版中自带,基本无需安装。以下是一些常用的 tcpdump 操作指令:

  • 抓取所有来源或目的为 192.168.1.1 的包:tcpdump host 192.168.1.1
  • 在所有网卡中抓取所有来源或目的为 192.168.1.1 的包:tcpdump -i any host 192.168.1.1
  • 抓取主机是192.168.1.1或192.168.1.2的包:tcpdump -i any host 192.168.1.1 or 192.168.1.2
  • 抓取除了 192.168.1.1 的包:tcpdump -i any host ! 192.168.1.1
  • 抓取所有流量:tcpdump -nS
  • 指定端口:tcpdump -i any port 22
  • 抓取192.168.1.1到192.168.1.2的80端口:tcpdump -i any src host 192.168.1.1 and dst host 192.168.1.2 and dst port 80
  • 抓取 icmp 包:tcpdump -i eth0 icmp
  • 抓取 tcp 包:tcpdump -i eth0 tcp
  • 抓取 udp 包:tcpdump -i eth0 udp
  • 抓取 http 协议所有的 get 请求:tcpdump -i eth0 -s 0 -A ‘tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420’
  • 抓取 http 协议的 POST 请求:tcpdump -i any -s 0 -A ‘tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504F5354’
  • 抓取 80 端口的 http 协议 get 请求的流量,只需要指定下 tcp dst port 80,post 同理:tcpdump -i any -s 0 -A ‘tcp dst port 80 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420’
  • 抓取 192.168.1.1 的 80 端口中 get 和 post 请求的 http 流量的请求和响应:tcpdump -i any -s 0 -A ‘tcp dst port 80 and ( tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504F5354 ) and host 192.168.1.1’
  • 监控所有的 get 和 post 的主机和地址:tcpdump -i any -s 0 -v -n -l | egrep -i “POST /|GET /|Host:”
  • 保存数据报文到文件中:tcpdump -i any -s 0 -X -w tcpdump.pcap
  • 读取数据报文:tcpdump -A -r tcpdump.pcap

结论

tcpdump 是一个非常强大的网络抓包工具,可以帮助我们快速诊断复杂的网络问题。熟练掌握 tcpdump 的使用方法,对于网络运维人员来说非常重要。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7449.html