机房网络工具如何排查故障

联启 网络工具 9

本文目录导读:

机房网络工具如何排查故障-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 故障排查的核心思路:分层诊断
  2. 核心工具与具体排查步骤
  3. 常见场景的快捷排查命令
  4. 新手最容易忽略的几个点
  5. 快速定位口诀

在机房运维中,网络故障的排查需要遵循从底层到高层从物理到逻辑的原则,以下是一套标准化的排查流程及常用工具的使用方法。

故障排查的核心思路:分层诊断

建议按照 OSI模型(开放系统互联模型) 或 TCP/IP模型(传输控制协议/网际协议模型) 自下而上排查,不要上来就抓包。

  1. 物理层: 线缆、光模块、接口、电源。
  2. 数据链路层: MAC地址、VLAN(虚拟局域网)、ARP(地址解析协议)、端口状态。
  3. 网络层: IP地址、路由、MTU(最大传输单元)。
  4. 传输层: 端口(TCP/UDP)、防火墙策略。
  5. 应用层: DNS(域名系统)、HTTP(超文本传输协议)、数据库连接。

核心工具与具体排查步骤

确认物理连通性(物理层+数据链路层)

现象: 网口灯不亮、服务器无法ping通、链路频繁震荡。

  • 工具: ethtoolip link、交换机命令行(show interface)。

  • 排查步骤:

    • 看光口/电口指示灯: 确认线缆是否插紧,光纤是否有光衰(光模块需清晰可见的红色/激光)。

    • 查看端口状态:

      # Linux 服务器
      ethtool eth0  # 查看 Speed、Duplex、Link detected
      ethtool -S eth0  # 查看错误包计数器 (CRC errors, collisions)
      # 交换机 (Cisco/Huawei)
      display interface GigabitEthernet 0/0/1
    • 关键指标:

      • Link detected: yes —— 物理通。
      • Speed: 1000Mb/s —— 协商速率是否匹配(服务器和交换机都要千兆/万兆)。
      • Duplex: Full —— 必须是全双工,半双工会导致大量丢包。
      • 错误计数器: CRC errors(线缆或光模块问题)、RuntsGiants(通常指小于64字节或大于1518字节的帧,可能因物理层问题或驱动异常产生)、Collisions(碰撞)大量增长说明物理层有故障。

排查链路层与ARP(地址解析协议)

现象: 能ping通网关,但ping不通其他网段服务器;IP冲突。

  • 工具: ip neigh / arp -apingtcpdump
  • 排查步骤:
    • 检查ARP表:
      arp -a  # 查看 IP 是否解析到了正确的 MAC 地址
      ip neigh show  # 更详细的邻居表
    • 如果ARP表为空或不正确:

      说明二层不通(VLAN隔离、交换机端口未允许该VLAN通过)。

    • VLAN测试: 在交换机上使用ping命令测试VLAN内的连通性。
    • MAC地址泛洪: 如果网络中有大量无效MAC地址,可能是环路或ARP攻击,使用tcpdump -e查看源MAC地址是否异常。

排查IP层与路由(网络层)

现象: 本机ping网关通,但ping远端(如互联网或另一机房)不通。

  • 工具: pingtraceroute / tracertip routemtr

  • 排查步骤:

    • 第一步:ping网关。 如果不通,检查本机IP配置(ip addr)、网卡配置或交换机端口配置。

    • 第二步:traceroute。

      # Linux
      traceroute -n 8.8.8.8  # -n 指禁用DNS解析,只显示IP
      # Windows
      tracert -d 8.8.8.8
      • 看数据包在哪里停止了( 或 !H即主机不可达,!N即网络不可达...)。
      • 处理: 检查那跳设备的路由表或防火墙。
    • 第三步:检查路由表。

      ip route show  # Linux
      route print    # Windows
      • 确保有默认网关或到达目标网段的静态路由
    • 高级工具:mtr (My TraceRoute)。

      • mtr -r 目标IP,它会持续发送探测包,并显示每一跳的丢包率,如果中间某跳丢包率很高(>20%),而后续跳数字为0(通常指后续跳数/节点无丢包或极低丢包),说明该节点可能限流,但整体可达。
      • 重点关注最后一跳的丢包。

排查端口与防火墙(传输层)

现象: ping通,但业务连不上(如SSH(安全外壳协议)、Web、数据库)。

  • 工具: telnetnc (netcat)、ss/netstatnmapiptables

  • 排查步骤:

    • 测试端口连通性:

      telnet 10.0.0.1 80      # 如果卡住不动或拒绝,说明端口不通
      nc -zv 10.0.0.1 3306    # -z 扫描模式 -v 显示详细信息
    • 检查服务是否监听:

      ss -tlnp  # 查看 TCP 监听端口及其对应的进程
      netstat -anp | grep 80
    • 检查防火墙:

      # Linux iptables
      iptables -L -n -v
      # Linux firewalld
      firewall-cmd --list-all
      # 临时关闭(用于测试):systemctl stop firewalld (注意运维安全,避免违规操作)
    • 使用 Nmap 进行端口扫描: 从另一台机器扫描目标机器,快速判断哪些端口开放。

深度抓包分析(万能手段)

现象: 上述所有方式均正常(链路UP、路由正确、端口开放),但业务交互异常(如丢包、乱序、重传、连接频繁重置)。这是最强大的工具。

  • 工具: tcpdump(服务端) + Wireshark(客户端分析)。
  • 高手用法:
    # 在服务器端抓取特定端口的包(先写一个循环持续捕获一段时间,避免文件过大)
    tcpdump -i eth0 -s 0 -w /tmp/dump.pcap host 10.0.0.100 and port 443
  • Wireshark 分析关键点:
    1. TCP 重传 (TCP Retransmission): 网络丢包或延迟大。
    2. TCP 重复ACK (TCP Dup Ack) + 快速重传: 网络存在少量丢包或链路不稳定。
    3. TCP 窗口满 (TCP Window Full) / 零窗口 (Zero Window): 接收端处理能力不足(应用层问题)。
    4. TCP RST (Reset): 对端主动断开连接,通常是防火墙发起的RST(被墙),或服务端进程崩溃、端口未监听。
    5. 连接建立过程(三次握手): 只有SYN(同步序列编号)发出,没有SYN+ACK(同步序列编号+确认字符)回复?-> 目标未监听;有SYN+ACK,但ACK(确认字符)丢失?-> 路由或防火墙不对称。

常见场景的快捷排查命令

场景1:某台服务器上不了网

# 先看底层
ip addr show eth0          # IP 是否配置?
ip route show default     # 是否有默认路由?
ethtool eth0               # 网卡是否 Link up?
# 再测连通性
ping 网关IP
ping 8.8.8.8
nslookup baidu.com         # DNS 是否解析?

场景2:网络丢包或延迟高

# 1. 本机队列丢包(软中断或溢出)
ethtool -S eth0 | grep -E "drop|fifo|error"
netstat -i                  # 查看 RX-DRP / TX-DRP 列
# 2. 系统资源耗尽
sar -n DEV 1 5             # 查看网卡每秒流量 (rxkB/s, txkB/s) 是否超带宽
# 3. 路径丢包定位
mtr -r 目标IP               # 看哪一跳开始丢包
# 4. 抓包看重传
tcpdump -i eth0 host 目标IP | grep "Retransmission"

场景3:交换机或路由器上排查

# 查看端口状态和错误
show interface status
show interfaces counters errors
# 查看MAC表
show mac address-table | include <MAC地址>
# 查看ARP表
show ip arp | include <IP地址>
# 查看路由表
show ip route

场景4:VLAN不通

# 交换机端
show vlan id <vlan-id>                    # 查看该VLAN包含哪些端口
show interface <端口名> switchport        # 查看端口是否Access/Trunk,允许哪些VLAN
# 服务器端(直连交换机时)一般服务器不配VLAN,靠交换机Access端口划分,如果是Trunk口接服务器,服务器网卡需配置VLAN子接口:
# Linux: ip link add link eth0 name eth0.100 type vlan id 100

新手最容易忽略的几个点

  1. 光模块/光衰: 很多“链路不通”其实是光模块接收功率低于临界值(比如低于 -25dBm),交换机上用 show interface transceiver 查看。
  2. 防火墙规则: 很多“通一会断”或“只有某IP能通”,极大概率是防火墙策略或安全组(Security Group)在做限制,记得先查防火墙日志/var/log/messagesdmesg | grep reject)。
  3. MTU: 能ping通(小包),但业务不通(大包),用 ping -M do -s 1472 <目标IP> 测试是否超过MTU(以太网标准MTU 1500,需扣除IP头20和ICMP头8,数据部分最大1472),如果大包不通,检查路径上是否有隧道(如IPSec、VXLAN),通常需要调小MTU。
  4. 双工协商: 服务器1000M全双工,但交换机端口协商成了半双工,会导致大量CRC错误,强制固定双方双工模式(如非必要不建议,通常自动协商即可)。
  5. IP地址冲突: arping 可以测试某个IP是否被其他设备占用。

快速定位口诀

先看灯亮不亮,再看IP对不对;
网关必能ping通,路由要进表内;
端口服务要监听,防火墙需放行;
最后抓包看TCP,重传窗口复位。

标签: 端口连通性

上一篇多设备组网如何工具搭建呢

下一篇当前分类已是最新一篇

抱歉,评论功能暂时关闭!