故障排查

type
status
date
slug
summary
tags
category
icon
password

一、排查思路(按七层模型)

  • 从底层到应用层逐步排查,确保逻辑清晰。
      1. 物理层:网线/接口
      1. 数据链路层:MAC 地址、交换机配置
      1. 网络层:IP 地址、路由、Ping
      1. 传输层:端口、TCP/UDP、Telnet
      1. 会话层:会话保持
      1. 表示层:编码、加密
      1. 应用层:服务进程、应用日志
  • 常用工具:
    • ping:测试网络连通性(ICMP 协议)。
    • telnet:测试目标主机端口是否开放。
    • tcpdump:抓包分析,检查网络层和传输层。

二、常用工具

1. ping

  • 用途:检测网络连通性,判断是否能到达目标 IP。
  • 示例:

    2. telnet

    • 用途:测试 TCP 端口连通性。
    • 示例:
      • 安装方式:
        • Linux: yum install -y telnet
        • Windows: 控制面板 → 程序和功能 → 启用 Telnet Client

      3. tcpdump

      • 用途:抓取指定网络接口的数据包。
      • 常用参数:
        • -i <iface>:指定接口
        • -n:不把 IP 地址解析成主机名(直接显示 IP)。
        • -nn:不仅不解析 IP 地址,还不把端口号解析成服务名(直接显示端口号)。
        • -w <file>:写入文件
        • -c <num> :收到指定的数据包数目后,就停止进行倾倒操作。
      • 示例:
          1. 类型关键字(指定对象)
        • host(缺省类型):指定一台主机
          • 示例:host 210.27.48.2
        • net:指定一个网络
          • 示例:net 202.0.0.0
        • port:指定端口号
          • 示例:port 23
          1. 方向关键字(指定方向)
        • src:源地址
          • 示例:src 210.27.48.2
        • dst:目标地址
          • 示例:dst net 202.0.0.0
        • dst or src(缺省):源或目标
        • dst and src:源和目标同时匹配
          1. 协议关键字(指定协议,缺省为全部)
        • ip:IP 包
        • tcp:TCP 包
        • udp:UDP 包
        • arp:ARP 包
        • rarp:RARP 包
        • fddi:光纤分布式数据接口帧
          1. 其他关键字
        • gateway:网关相关包
        • broadcast:广播包
        • less:小于指定长度
        • greater:大于指定长度
          1. 表达式逻辑运算
        • 非 (NOT)!not
        • 且 (AND)&&and
        • 或 (OR)||or
        • 括号:多条件时可用括号,但需转义
          • 示例:
            总结口诀
          • 类型:host/net/port
          • 方向:src/dst
          • 协议:ip/tcp/udp/arp
          • 逻辑:not/and/or
        分类
        命令
        说明
        主机过滤
        tcpdump -i ens33 -nn host 192.168.1.100
        抓取来自或发往某主机的包
        tcpdump -i ens33 -nn src host 192.168.1.100
        抓取源 IP 为指定主机的包
        tcpdump -i ens33 -nn dst host 192.168.1.200
        抓取目标 IP 为指定主机的包
        网络过滤
        tcpdump -i ens33 -nn net 192.168.1.0/24
        抓取整个网段的包
        tcpdump -i ens33 -nn dst net 10.0.0.0/8
        抓取目标网段的包
        端口过滤
        tcpdump -i ens33 -nn port 22
        抓取指定端口的包 (SSH)
        tcpdump -i ens33 -nn src port 80
        抓取源端口为 80 的包
        tcpdump -i ens33 -nn dst port 443
        抓取目标端口为 443 的包
        协议过滤
        tcpdump -i ens33 -nn tcp
        抓取所有 TCP 包
        tcpdump -i ens33 -nn udp
        抓取所有 UDP 包
        tcpdump -i ens33 -nn icmp
        抓取所有 ICMP 包 (ping)
        tcpdump -i ens33 -nn arp
        抓取所有 ARP 包
        组合条件
        tcpdump -i ens33 -nn 'src host 192.168.1.100 and (dst port 80 or dst port 443)'
        抓取某主机访问 Web 端口的包
        tcpdump -i ens33 -nn 'src host 192.168.1.100 and not dst port 22'
        抓取某主机但排除 SSH 端口
        tcpdump -i ens33 -nn '(tcp or udp) and dst net 10.0.0.0/8'
        抓取 TCP/UDP 且目标网段为 10.0.0.0/8 的包
        输出控制
        tcpdump -i ens33 -nn -w output.pcap
        保存数据包到文件
        tcpdump -i ens33 -nn -c 100
        只抓取前 100 个包
        tcpdump -i ens33 -nn -X
        显示详细内容(十六进制/ASCII)

        三、TCP 报文分析步骤

        1. 基本信息确认

        • 通信双方:源 IP:Port → 目的 IP:Port
        • 客户端/服务端区分:一般 端口号 ≤1024 为服务端,高位端口为客户端。
        • 时间戳:检查报文间隔,是否超时。

        2. 三次握手

        1. SYN(客户端发起):Flags [S],seq=随机值
        1. SYN+ACK(服务端回应):Flags [S.],ack=seq+1
        1. ACK(客户端确认):Flags [.],ack=对方 seq+1
          1. ✅ 三步完整表示连接成功。

        3. 数据传输阶段

        • SEQ 序列号
          • 连续性:后一个包的起始 seq = 前一个包的 seq+len
          • 缺口 → 丢包或乱序
        • ACK 确认号
          • ack=x 表示已收到 x-1 之前的字节
          • 若不递增 → 延迟 ACK 或丢包
        • Flags 标志位
          • S:SYN 建立连接
          • F:FIN 关闭连接
          • R:RST 异常断开
          • P:PUSH 立即交付应用层
          • .:ACK 确认
          • 观察点:重复 SYN(重传)、大量 RST(异常关闭)
        • 窗口大小(win)
          • 表示还能接收的数据量
          • 若为 0 → 接收方缓冲区满(零窗口问题)
        • 重传情况
          • 相同 seq 出现多次 → TCP 重传

        4. 四次挥手

        • 一般流程:FIN → ACK → FIN → ACK
        • 若出现 RST → 强制关闭。

        5. 常见异常现象

        • ACK 不增长 → 数据丢失
        • 重复 seq → 重传
        • 窗口为 0 → 接收端拥塞
        • 大量 RST → 应用层异常关闭
        • 只有 SYN 无回应 → 端口未开放或被防火墙拦截
        分析逻辑总结
        先看 Flags(阶段) → 再看 SEQ/ACK(连续性) → 最后看 窗口/重传(性能与异常)。

        四、网络五元素(五元组)

        1. 源 IP 地址(Source IP)
        1. 源端口(Source Port)
        1. 目标 IP 地址(Destination IP)
        1. 目标端口(Destination Port)
        1. 传输层协议(TCP/UDP)

        五、潜在误解

        • 服务端常用 知名端口(0–1023)
        • 客户端通常使用 临时端口(>1023) 连接服务端。

        Loading...