Linux route 命令

Linux 命令大全 Linux 命令大全


一、route 命令概述

route 命令是 Linux 系统中用于查看和操作 IP 路由表的强大工具。作为网络配置的基础命令,它允许管理员:

  • 显示当前路由表信息
  • 添加/删除静态路由
  • 修改现有路由规则
  • 管理网络数据包的传输路径

基本语法

route [选项] [操作] [目标] [命令参数]

二、路由表基础概念

1. 什么是路由表

路由表是操作系统内核维护的一个数据结构,它决定了网络数据包如何从源地址传输到目标地址。可以将其类比为:

"城市交通导航系统:当你想去某个目的地时,系统会告诉你应该走哪条路最快最有效"

2. 路由表关键字段

通过 route -n 查看路由表时,会显示以下重要列:

列名 说明 示例值
Destination 目标网络或主机 192.168.1.0
Gateway 下一跳网关 192.168.1.1
Genmask 网络掩码 255.255.255.0
Flags 路由标志 U (路由已启用)
Metric 路由成本 0
Iface 出口接口 eth0

三、route 命令常用操作

1. 查看路由表

实例

# 显示完整路由表(不解析主机名)
route -n

# 输出示例:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

2. 添加路由

实例

# 添加到特定主机的路由
route add -host 192.168.1.100 dev eth0

# 添加到网络的路由
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1

# 添加默认网关
route add default gw 192.168.1.1

3. 删除路由

实例

# 删除特定路由
route del -net 192.168.2.0 netmask 255.255.255.0

# 删除默认网关
route del default gw 192.168.1.1

四、命令选项详解

route 命令支持以下常用选项:

选项 说明
-n 以数字形式显示地址(不解析主机名)
-e 使用 netstat 格式显示路由表
-v 显示详细操作信息
-A family 指定地址族(inet, inet6等)
-F 显示内核 FIB 路由表
-C 显示路由缓存

特殊命令参数:

  • add:添加路由
  • del:删除路由
  • -host:操作针对特定主机
  • -net:操作针对整个网络
  • gw:指定网关
  • dev:指定网络接口

五、实际应用场景

场景1:多网卡路由配置

当服务器有多个网络接口时,需要指定不同网络的出口:

实例

# 让发往10.0.0.0/24的数据走eth1接口
route add -net 10.0.0.0 netmask 255.255.255.0 dev eth1

场景2:VPN路由设置

连接VPN后,需要添加特定路由:

实例

# 只让特定网段走VPN隧道
route add -net 172.16.0.0 netmask 255.240.0.0 dev tun0

场景3:临时测试路由

实例

# 临时添加路由进行测试(重启后失效)
route add -host 8.8.8.8 gw 192.168.1.254
ping 8.8.8.8  # 测试路由是否生效
route del -host 8.8.8.8  # 测试完成后删除

六、持久化路由配置

通过route命令添加的路由在重启后会丢失,要实现永久生效:

1. Debian/Ubuntu 系统

编辑 /etc/network/interfaces

实例

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2

2. RHEL/CentOS 系统

创建路由配置文件 /etc/sysconfig/network-scripts/route-eth0

10.0.0.0/8 via 192.168.1.2

七、常见问题排查

1. 路由不生效检查步骤

2. 典型错误解决

错误1:"SIOCADDRT: Network is unreachable"

  • 原因:网关不在本地网络的直接广播域内
  • 解决:先确保能ping通网关地址

错误2:"RTNETLINK answers: File exists"

  • 原因:尝试添加已存在的路由
  • 解决:先删除旧路由再添加,或使用replace选项

八、替代命令:ip route

现代Linux系统推荐使用ip route命令:

实例

# 显示路由表
ip route show

# 添加路由
ip route add 10.0.0.0/8 via 192.168.1.2

# 删除路由
ip route del 10.0.0.0/8

虽然ip route更强大,但route命令因其简单直观仍被广泛使用。


通过本指南,您应该已经掌握了route命令的核心用法。建议在实际环境中多练习这些命令,观察路由变化对网络连接的影响。遇到复杂路由问题时,可以结合tracerouteping等工具进行综合诊断。

Linux 命令大全 Linux 命令大全