- 前言
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第 1 篇 高性能网站构建
- 第 1 章 深入理解 DNS 原理与部署 BIND
- 第 2 章 全面解析 CDN 技术与实战
- 第 3 章 负载均衡和高可用技术
- 第 4 章 配置及调优 LVS
- 第 5 章 使用 HAProxy 实现 4 层和 7 层代理
- 第 6 章 实践 Nginx 的反向代理和负载均衡
- 第 7 章 部署商业负载均衡设备 NetScaler
- 第 8 章 配置高性能网站
- 第 9 章 优化 MySQL 数据库
- 第 2 篇 服务器安全和监控
- 第 10 章 构建企业级虚拟专用网络
- 第 11 章 实施 Linux 系统安全策略与入侵检测
- 第 12 章 实践 Zabbix 自定义模板技术
- 第 13 章 服务器硬件监控
- 第 3 篇 网络分析技术
- 第 14 章 使用 tcpdump 与 Wireshark 解决疑难问题
- 第 15 章 分析与解决运营商劫持问题
- 第 16 章 深度实践 iptables
- 第 4 篇 运维自动化和游戏运维
- 第 17 章 使用 Kickstart 完成批量系统安装
- 第 18 章 利用 Perl 编程实施高效运维
- 第 19 章 精通 Ansible 实现运维自动化
- 第 20 章 掌握端游运维的技术要点
- 第 21 章 精通手游运维的架构体系
最佳实践 73:学习 tcpdump 的 5 个参数和过滤器
使用 tcpdump 进行网络抓包时,必须要坚持以下原则。
- 抓包的结果应该尽量少。过多的无用信息会产生信息噪音,从中分离有效信息的过程也会变得费时费力。
- 客户端和服务器端都能够完全控制的情况下,同时在两端进行抓包分析确认。
- 怀疑交换机等网络设备丢包时,在能够完全控制的情况下,使用端口镜像的方式,把网络设备的进出流量引导到服务器上抓包分析确认。
学习 tcpdump 的 5 个参数
初次使用 tcpdump 时,使用 tcpdump-h 命令可以看到它有数十个参数。根据我们在运维工作中的经验,掌握 tcpdump 以下 5 个参数即可满足大部分的工作需要了。
- -i 参数:指定需要抓包的网卡。如果未指定的话,tcpdump 会根据搜索到的系统中状态为 UP 的最小数字的网卡确定,一般情况下是 eth0。使用-i 参数通过指定需要抓包的网卡,可以有效地减少抓取到的数据包的数量,增加抓包的针对性,便于后续的分析工作。
- -nnn 参数:禁用 tcpdump 展示时把 IP、端口等转换为域名、端口对应的知名服务名称。这样看起来更加清晰。
- -s 参数:指定抓包的包大小。使用-s 0 指定数据包大小为 262144 字节,可以使得抓到的数据包不被截断,完整反映数据包的内容。
- -c 参数:指定抓包的数量。
- -w 参数:指定抓包文件保存到文件,以便后续使用 Wireshark 等工具进行分析。
学习 tcpdump 的过滤器
tcpdump 提供了丰富的过滤器,以支持抓包时的精细化控制,达到减少无效信息干扰的效果。常用的过滤器规则有下面几个。
- host a.b.c.d:指定仅抓取本机和某主机 a.b.c.d 的数据通信。
- tcp port x:指定仅抓取 TCP 协议目的端口或者源端口为 x 的数据通信。
- icmp:指定仅抓取 ICMP 协议的数据通信。
- !:反向匹配,例如 port!22,抓取非 22 端口的数据通信。
以上几种过滤器规则,可以使用 and 或者 or 进行组合,例子如下。
- host a.b.c.d and tcp port x:则只抓取本机和某主机 a.b.c.d 之间基于 TCP 的目的端口或者源端口为 x 的数据通信。
- tcp port x or icmp:则抓取 TCP 协议目的端口或者源端口为 x 的数据通信或者 ICMP 协议的数据通信。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论