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

目录

前言:

[一、路由表探查: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 检查门卫

相关推荐
报错小能手5 小时前
linux学习笔记(49)Redis详解(1)
linux·笔记·学习
QT 小鲜肉5 小时前
【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
linux·windows·笔记·学习·adb
keer_zu6 小时前
一个Modbus-TCP传感器数据传输方案
网络·网络协议·tcp/ip
panplan.top6 小时前
Tornado + Motor 微服务架构(Docker + 测试 + Kubernetes)
linux·python·docker·微服务·k8s·tornado
深度学习实战训练营6 小时前
MemNet:一种用于图像恢复的持久性存储网络
网络·人工智能
TiAmo8086 小时前
ip生产区
服务器·网络·tcp/ip
FJW0208146 小时前
【Linux】系统中的文件管理
linux·运维·服务器
豆是浪个6 小时前
Linux(Centos 7.6)命令详解:rpm
linux·运维·centos
Z_Xshan7 小时前
docker 容器web站点 中文文件名访问404问题
linux·开发语言·docker