Linux tcpdump 命令详解与示例

TcpDump是Linux系统中强大的网络数据包分析工具,常用于网络数据采集和问题排查。它允许用户根据特定条件过滤网络流量,如主机、端口、协议等。本文介绍了tcpdump的基本概念、常用示例、命令格式、常见选项及条件表达式,帮助系统管理员更好地理解和使用tcpdump进行网络监控。
摘要由CSDN通过智能技术生成

命令概要

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump 是 Linux 中强大的网络数据采集分析工具之一。

用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。

TCPDump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

tcpdump 常用示例

查看当前机器有哪些网络接口

# tcpdump -D
1.eth0
2.nflog (Linux netfilter log (NFLOG) interface)
3.nfqueue (Linux netfilter queue (NFQUEUE) interface)
4.eth1
5.usbmon1 (USB bus number 1)
6.any (Pseudo-device that captures on all interfaces)
7.lo [Loopback]
下面所有测试中都有 -i any的选项,表示抓取所有网络接口上的包,为了让测试方便

针对指定主机抓包

# tcpdump -i any -n -nn host 192.168.1.10 -w ./$(date +%Y%m%d%H%M%S).pcap

针对指定端口抓包

# tcpdump -i any -n -nn port 80 -w ./$(date +%Y%m%d%H%M%S).pcap

针对主机和端口抓包,两者关系 and

# tcpdump -i any -n -nn host 192.168.1.10 and port 80 -w ./$(date +%Y%m%d%H%M%S).pcap

针对多个端口抓包

# tcpdump -i any -n -nn port 111 or port 443

针对多个主机抓包

# tcpdump -i any -n -nn host www.baidu.com or www.360.com

其他示例:

抓取访问destination 443端口的包

# tcpdump -i any -n dst port 443   # 然后我们做一个curl https://www.baidu.com的操作
…………
19:22:43.049262 IP 120.27.48.179.45008 > 180.101.49.11.https: Flags [.], ack 2997781737, win 229, length 0
…………

抓取源端口是80的包

# tcpdump -i any -nn src port 80 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
19:32:45.325115 IP 100.100.45.131.80 > 10.80.151.139.48500: Flags [.], ack 2072960929, win 2915, length 0
19:32:51.151735 IP 100.100.45.131.80 > 10.80.151.139.48500: Flags [.], ack 959, win 2915, length 0

抓取源或者目标端口都是80的包

# tcpdump -i any -n -nn port 80
19:35:19.465908 IP 120.27.48.179.40640 > 180.101.49.11.80: Flags [P.], seq 1:78, ack 1, win 229, length 77: HTTP: GET / HTTP/1.1
19:35:19.487790 IP 180.101.49.11.80 > 120.27.48.179.40640: Flags [.], ack 78, win 908, length 0
19:35:19.488832 IP 180.101.49.11.80 > 120.27.48.179.40640: Flags [P.], seq 1:2782, ack 78, win 908, length 2781: HTTP: HTTP/1.1 200 OK
19:35:19.488857 IP 120.27.48.179.40640 > 180.101.49.11.80: Flags [.], ack 2782, win 272, length 0

表示抓取destination prot 在100到455之间的端口的数据

# tcpdump -i any -n -nn dst portrange 100-455  # 在另外的面做curl https://www.baidu.com 以及 telnet www.baidu.com 111
## 部分信息如下
19:41:29.534311 IP 120.27.48.179.45588 > 180.101.49.11.443: Flag
  • 7
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值