网络故障排查三板斧:路由追踪、端口检查,快速定位网络问题

目录

前言:

[一、路由表探查:ip route - 网络的"导航地图"](#一、路由表探查:ip route - 网络的"导航地图")

什么是路由表?

查看IPv4路由表

查看IPv6路由表

[二、路径追踪:tracepath - 数据的"旅行日记"](#二、路径追踪:tracepath - 数据的"旅行日记")

为什么需要追踪路径?

基本用法

IPv6路径追踪

[三、端口检查:ss - 服务的"门卫登记表"](#三、端口检查:ss - 服务的"门卫登记表")

什么是端口?

查看端口状态

连接状态(State)

地址和端口

常用参数说明

四、实战故障排查流程

场景:网站访问不了

场景:SSH连接不上

五、命令对比总结

六、实用小贴士

总结


前言:

当网络不通时,别急着重启,先问问这三个命令

在网络管理和故障排查中,我们经常遇到各种连接问题。今天介绍三个强大的命令,帮你快速定位网络问题:ip routetracepathss


一、路由表探查:ip route - 网络的"导航地图"

什么是路由表?

想象一下,路由表就是你设备的导航地图,它告诉数据包:

  • 去某个地方该走哪条路

  • 不知道去哪的时候该问谁

查看IPv4路由表

bash 复制代码
[user@host ~]$ ip route
default via 192.0.2.254 dev ens3 proto static metric 1024
192.0.2.0/24 dev ens3 proto kernel scope link src 192.0.2.2
10.0.0.0/8 dev ens4 proto kernel scope link src 10.0.0.11

解读这个"地图":

  1. 第一条:默认路由

    bash 复制代码
    default via 192.0.2.254 dev ens3
  2. 第二条:直连路由

    bash 复制代码
    192.0.2.0/24 dev ens3
    • 含义 :访问192.0.2.0-192.0.2.255这个网段,直接通过ens3发送

    • 好比:给同小区邻居送信,直接投递不用经过门卫

  3. 第三条:另一个直连路由

    bash 复制代码
    10.0.0.0/8 dev ens4
    • 含义 :访问10.x.x.x这个大网段,通过ens4网卡直接发送

    • 说明这台服务器有两个网卡,连接不同网络

查看IPv6路由表

bash 复制代码
[user@host ~]$ ip -6 route
2001:db8:0:1::/64 dev ens3 proto kernel metric 256
fe80::/64 dev ens3 proto kernel metric 256
default via 2001:db8:0:1::ffff dev ens3 proto static metric 1024

IPv6路由解读:

  • 2001:db8:0:1::/64:IPv6本地网络路由

  • fe80::/64:IPv6本地链路地址路由

  • default via 2001:db8:0:1::ffff:IPv6默认网关

那些unreachable条目是系统预设的无效路由,防止数据包发往这些保留地址段。


二、路径追踪:tracepath - 数据的"旅行日记"

为什么需要追踪路径?

有时候网络不通,不是目标的问题,而是中间某个环节 出了问题。tracepath就像给数据包装了个GPS,记录它经过的每个站点。

基本用法

bash 复制代码
[user@host ~]$ tracepath access.redhat.com
 1: 192.168.1.1                           0.312ms 
 2: 100.64.0.1                            5.128ms 
 3: 10.10.10.1                           10.245ms 
 4: 71-32-28-145.rcmt.qwest.net          48.853ms asymm  5
 5: dcp-brdr-04.inet.qwest.net          109.732ms asymm  7
 6: 206.111.0.153.ptr.us.xo.net          96.245ms asymm  7
...(中间省略若干跳)...
10: bu-ether13.atlngamq46w-bcr09.tbone.rr.com 107.286ms asymm 12

看懂输出结果:

  • 第1跳192.168.1.1 - 你的家庭路由器(网关)

  • 第2跳100.64.0.1 - 运营商的第一级设备

  • 第3跳10.10.10.1 - 运营商的内部网络

  • 后续跳数:数据包在运营商骨干网中传输

关键信息:

  • 时间值:数据包到达该节点并返回的耗时(越小越好)

  • asymm:非对称路由,说明去程和回程走了不同路径(正常现象)

  • 任何一跳超时:说明问题出现在那一跳的设备上

IPv6路径追踪

bash 复制代码
[user@host ~]$ tracepath6 2001:db8:0:2::451
 1: 2001:db8:0:1::ba                     0.214ms

用法与IPv4完全相同,只是目标地址换成了IPv6格式。


三、端口检查:ss - 服务的"门卫登记表"

什么是端口?

如果把IP地址比作公司的地址,那么端口就是公司里各个部门的分机号

  • 80端口:网站服务(HTTP)

  • 22端口:远程登录(SSH)

  • 25端口:邮件发送(SMTP)

查看端口状态

bash 复制代码
[user@host ~]$ ss -ta
State    Recv-Q Send-Q    Local Address:Port    Peer Address:Port
LISTEN   0      128            *:sunrpc              *:*
LISTEN   0      128            *:ssh                 *:*
LISTEN   0      100     127.0.0.1:smtp               *:*
LISTEN   0      128            *:36889               *:*
ESTAB    0      0      172.25.250.10:ssh     172.25.254.254:59392
LISTEN   0      128            ::sunrpc              :::*
LISTEN   0      128            ::ssh                 :::*
LISTEN   0      100           ::1:smtp               :::*
LISTEN   0      128            ::34946               :::*

解读这个"登记表":

连接状态(State)

  • LISTEN :服务正在监听等待连接(像办公室有人值班)

  • ESTAB已建立的连接(正在通话中)

  • CLOSE_WAIT:连接正在关闭

  • TIME_WAIT:连接已关闭,等待清理

地址和端口

  • *:ssh:在所有IP地址上监听22端口(SSH服务)

  • 127.0.0.1:smtp:只在本地回环地址监听25端口(本地邮件服务)

  • 172.25.250.10:ssh:已建立的SSH连接,本地端口22,对方IP172.25.254.254,对方端口59392

  • :::ssh:IPv6的SSH监听

常用参数说明

参数 作用 示例
-t 显示TCP连接 ss -t
-u 显示UDP连接 ss -u
-l 只显示监听中的端口 ss -tl
-a 显示所有连接 ss -ta
-p 显示使用端口的进程 ss -tp
-n 显示数字格式(不解析名称) ss -tn

四、实战故障排查流程

场景:网站访问不了

第一步:检查基本连通性

bash 复制代码
ping www.baidu.com

如果不通,进行下一步。

第二步:检查路由表

bash 复制代码
ip route

确认有默认路由,网关地址正确。

第三步:追踪路径

bash 复制代码
tracepath www.baidu.com

看在哪一跳出现问题。

第四步:检查本地服务

bash 复制代码
ss -tlnp | grep :80

查看80端口是否被占用,网站服务是否正常监听。

场景:SSH连接不上

第一步:检查SSH服务状态

确认22端口在监听状态。

第二步:检查防火墙规则

bash 复制代码
# 如果有firewalld
firewall-cmd --list-all

# 如果有iptables
iptables -L

五、命令对比总结

命令 作用 好比
ip route 查看路由表 查看导航地图
tracepath 追踪网络路径 给数据包装GPS
ss 查看端口状态 查看门卫登记表

六、实用小贴士

  1. 路由问题 :先用ip route确认有默认网关

  2. 中间节点问题 :用tracepath找到具体哪一跳故障

  3. 服务本身问题 :用ss确认服务端口在正常监听

  4. 权限问题 :有些ss参数需要root权限

  5. IPv6环境 :记得使用-6参数或IPv6版本命令


总结

掌握这三个命令,你就能应对大部分网络连接问题:

  • 迷路了?ip route 查看地图

  • 卡在半路了?tracepath 追踪路线

  • 服务没开门?ss 检查门卫

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
网络研究院3 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展