Linux tcpdump 命令:网络抓包与故障排查利器

举报
yd_239025793 发表于 2026/09/23 10:55:03 2026/09/23
【摘要】 tcpdump 是 Linux 中非常常用的网络抓包工具,可以直接捕获网卡上的数据包,用来排查网络连接、端口访问、DNS、HTTP、TCP 握手等问题。最基础的用法:tcpdump默认会监听一个网络接口并输出抓到的数据包。实际使用中,通常先指定网卡:tcpdump -i eth0如果不知道网卡名称,可以先执行:ip addr或者查看 tcpdump 可用接口:tcpdump -D只抓指定主机...

tcpdump 是 Linux 中非常常用的网络抓包工具,可以直接捕获网卡上的数据包,用来排查网络连接、端口访问、DNS、HTTP、TCP 握手等问题。

最基础的用法:

tcpdump

默认会监听一个网络接口并输出抓到的数据包。

实际使用中,通常先指定网卡:

tcpdump -i eth0

如果不知道网卡名称,可以先执行:

ip addr

或者查看 tcpdump 可用接口:

tcpdump -D

只抓指定主机的数据:

tcpdump host 192.168.1.100

只抓访问目标主机的数据:

tcpdump dst host 192.168.1.100

只抓来自某个主机的数据:

tcpdump src host 192.168.1.100

按端口抓包:

tcpdump port 80

例如抓 SSH 流量:

tcpdump port 22

只抓 TCP 数据包:

tcpdump tcp

只抓 UDP:

tcpdump udp

抓 ICMP,也就是常见的 ping 数据:

tcpdump icmp

多个条件可以组合:

tcpdump -i eth0 host 192.168.1.100 and port 443

表示只监听 eth0 网卡上与 192.168.1.100:443 有关的流量。

排除某些流量可以使用 not:

tcpdump not port 22

这样可以避免 SSH 连接产生大量干扰数据。

限制抓包数量:

tcpdump -c 100

抓到 100 个数据包后自动退出。

如果希望直接显示 IP 和端口,而不进行域名解析:

tcpdump -nn

这是实际排查问题时非常常用的参数。

-n     不解析主机名
-nn    不解析主机名和端口服务名称

查看更详细的数据包信息:

tcpdump -vv

甚至可以使用:

tcpdump -vvv

显示更详细的协议字段。

如果想查看数据包正文,可以使用:

tcpdump -A

以 ASCII 形式显示内容。

或者:

tcpdump -X

同时显示十六进制和 ASCII 内容。

将抓包结果保存到文件:

tcpdump -i eth0 -w capture.pcap

之后可以使用 tcpdump 读取:

tcpdump -r capture.pcap

也可以将 .pcap 文件放到 Wireshark 中进一步分析。

日常排查网络问题时,一个非常实用的组合是:

tcpdump -i eth0 -nn host 192.168.1.100

例如检查服务器是否收到 443 端口请求:

tcpdump -i eth0 -nn tcp port 443

排查 TCP 三次握手时,可以观察:

SYN
SYN, ACK
ACK

如果只能看到客户端不断发送 SYN,却没有收到 SYN, ACK,通常说明服务端没有正常响应,可能涉及:

防火墙
安全组
服务未监听
网络路由
端口被拦截

常见参数可以简单记住:

-i    指定网卡
-D    查看可监听的接口
-nn   不进行域名和端口解析
-c    限制抓包数量
-w    保存为 pcap 文件
-r    读取 pcap 文件
-A    ASCII 显示数据内容
-X    十六进制 + ASCII
-v    显示详细信息

如果服务器出现“端口明明开放但访问不了”“请求有没有到服务器”“DNS 到底发到哪里去了”等网络问题,tcpdump 往往是最直接有效的排查工具之一。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。