Linux 快速排查网络故障

背景需求

Linux 因为其强大的网络处理能力,被广泛用于网关(实例链接)和服务器(实例链接)。实际工作中,快速排查这些 Linux 设备的网络故障成为解决问题的利器。为此,本文列出高频使用的 Linux 排查网络故障的命令

诊断系统资源

  • CPU: uptime, top, sar -u
  • RAM: free, top, sar -r
  • Disk: iostat, sar -b, df -h, du -S /home | sort -rn | head -n 10
  • Net: iftop (yum install -y iftop)

诊断网络故障

  • 链路接通了吗:ethtool eth0
  • 接口是否启用:ifconfig eth0
  • 是否连通本地网络:route -n
  • 是否连通 Internet:ping -c 3 www.qq.com
  • DNS 是否工作正常(yum install -y bind-utils)
    • host www.qq.com
    • nslookup www.qq.com
    • dig www.qq.com
  • 是否可以路由到远程主机:traceroute www.qq.com
    • 远程端口是否开放:nmap -p 80 www.qq.com(yum install -y nmap)
    • 本服务器是否侦听端口:netstat -tunlp | grep -w 80
    • 本服务器是否打开防火墙:/sbin/iptables -L | grep -i -E “reject | drop”

配置网络

  • 配置(IP+Netmask+DHCP+Gateway):/etc/sysconfig/network-scripts/ifcfg-eth0
  • 配置 DNS IP:/etc/resolv.conf
  • 路由的增加与删除
    • 增加默认路由:route add default gw 192.168.1.1
    • 增加 172.16.0.0/24:route add -net 172.16.0.0 netmask 255.255.0.0 dev eth0
    • 删除 172.16.0.0/24:route del -net 172.16.0.0 netmask 255.255.0.0 dev eth0
  • 重新启动整个网络:/etc/init.d/network restart
  • 启动网卡
    • ifup eth0
    • ip link set eth0 up
  • 停止网卡
    • ifdown eth0
    • ip link set eth0 down
  • 配置主机名:/etc/sysconfig/network /etc/hosts