Linux系统下如何手动添加静态路由表项的具体操作步骤?

在Linux系统中,路由表是网络数据包转发的重要依据,它决定了数据包的传输路径,当需要让Linux服务器访问非直连网络或多网关环境时,手动添加路由是必要的操作,本文将详细介绍Linux下添加路由的方法,包括临时路由和永久路由的配置,以及不同发行版的差异。

linux下如何添加路由

路由基础与临时路由添加

Linux路由表记录了目标网络、下一跳(网关)、出站接口等信息,可通过ip route命令查看当前路由表(ip route showip r),临时路由通过命令直接添加,重启后失效,适用于测试或临时场景。

添加默认路由

默认路由(0.0.0.0/0)用于匹配所有未明确匹配的目标网络,命令格式为:

sudo ip route add default via <网关IP> dev <出站接口>

添加网关为192.168.1.1、通过eth0接口的默认路由:

sudo ip route add default via 192.168.1.1 dev eth0

添加特定网段路由

当需要访问某个特定网段(如192.168.2.0/24)时,需指定目标网络和下一跳网关:

sudo ip route add <目标网络/子网掩码> via <网关IP> dev <出站接口> [metric <跃点数>]

添加到192.168.2.0/24网段,网关192.168.1.1,跃点数100(数值越小优先级越高):

sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0 metric 100

添加直连路由(通过接口)

若目标网络与服务器在同一物理或虚拟网段(如通过点对点链路),可直接指定出站接口,无需网关:

sudo ip route add <目标网络/子网掩码> dev <出站接口>

添加10.0.0.0/24网段通过eth1接口直连:

linux下如何添加路由

sudo ip route add 10.0.0.0/24 dev eth1

删除临时路由

若需撤销已添加的临时路由,使用del替换add

sudo ip route del default via 192.168.1.1 dev eth0

永久路由配置

临时路由重启后失效,生产环境中需配置永久路由,不同Linux发行版的配置方式存在差异,主要分为CentOS/RHEL系列和Ubuntu/Debian系列。

CentOS/RHEL系列(使用NetworkScripts)

CentOS 7及之前版本通过NetworkScripts管理路由,配置文件位于/etc/sysconfig/network-scripts/下,命名为route-<接口名>(如route-eth0)。

配置步骤
(1)创建或编辑路由配置文件,例如为eth0接口添加永久路由:

sudo vi /etc/sysconfig/network-scripts/route-eth0

(2)文件内按以下格式添加路由(每行一条路由):

# 格式1:目标网络/子网掩码 via 网关IP dev 接口 [metric 跃点数]
192.168.2.0/24 via 192.168.1.1 dev eth0 metric 100
10.0.0.0/24 dev eth1

(3)保存后重启网络服务或重启系统:

sudo systemctl restart network  # CentOS 7+
# 或 service network restart  # CentOS 6及之前

Ubuntu/Debian系列(使用Netplan或ifupdown)

Ubuntu 18.04+默认使用Netplan(YAML配置文件),旧版本可通过/etc/network/interfaces配置。

linux下如何添加路由

(1)Netplan配置(Ubuntu 18.04+)
配置文件位于/etc/netplan/下(如01-netcfg.yaml),在对应接口的routes字段中添加路由:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses: [192.168.1.100/24]  # 接口IP
      routes:
        - to: 192.168.2.0/24
          via: 192.168.1.1
          metric: 100
        - to: 10.0.0.0/24
          via: 10.0.0.1
      gateway4: 192.168.1.1  # 默认网关
      nameservers:
        addresses: [8.8.8.8]

应用配置:

sudo netplan apply

(2)ifupdown配置(Ubuntu 16.04及旧版)
编辑/etc/network/interfaces文件,在接口配置块中添加up ip route add...命令:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    # 永久路由
    up ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0 metric 100
    up ip route add 10.0.0.0/24 via 10.0.0.1 dev eth1

重启网络服务:

sudo systemctl restart networking

不同发行版永久路由配置对比

发行版系列 配置方式 配置文件位置/命令 生效方式
CentOS/RHEL 7+ NetworkScripts /etc/sysconfig/network-scripts/route-<接口> systemctl restart network
CentOS/RHEL 6 NetworkScripts /etc/sysconfig/network-scripts/route-<接口> service network restart
Ubuntu 18.04+ Netplan /etc/netplan/*.yaml netplan apply
Ubuntu 16.04及旧版 ifupdown /etc/network/interfaces systemctl restart networking

路由管理常用命令

  • 查看路由表ip route showip r-n参数以数字形式显示(不解析域名)。
  • 查看路由缓存ip route cache(显示已解析的路由条目)。
  • 添加路由并标记sudo ip route add <目标> via <网关> table <表号>(用于多路由表场景,如策略路由)。
  • 修改跃点数sudo ip route change <目标> metric <新跃点数>(调整路由优先级)。

注意事项

  1. 权限要求:所有路由操作需root权限(sudo)。
  2. 网关可达性:添加路由前需确保网关IP与服务器在同一网段或可达,否则路由无效。
  3. 接口状态:确保出站接口处于UP状态(ip link show <接口>查看)。
  4. 配置备份:修改永久路由前建议备份原配置文件,避免配置错误导致网络中断。
  5. 跃点数影响:同一目标网络存在多条路由时,系统优先选择跃点数最小的路由。

相关问答FAQs

Q1:添加路由后无法访问目标网络,可能的原因及排查步骤?
A:排查步骤如下:

  1. 检查网关可达性:执行ping <网关IP>,若不通,检查网关设备配置及网络链路。
  2. 确认路由条目:运行ip route show | grep <目标网络>,确认路由是否正确添加。
  3. 检查接口状态:通过ip link show <接口>确认接口是否为UP状态,未启用则执行sudo ip link set <接口> up
  4. 防火墙拦截:检查iptables/nftables防火墙规则,是否丢弃了相关流量(sudo iptables -L -n)。
  5. 目标网络连通性:在网关设备上检查是否配置了返回路由(如静态路由或动态路由协议)。

Q2:如何删除已添加的永久路由?
A:删除方法与发行版相关:

  • CentOS/RHEL:编辑/etc/sysconfig/network-scripts/route-<接口>文件,删除对应路由条目后重启网络服务(systemctl restart network)。
  • Ubuntu(Netplan):编辑/etc/netplan/*.yaml文件,删除routes部分对应条目后运行sudo netplan apply
  • Ubuntu(ifupdown):编辑/etc/network/interfaces文件,删除up ip route add...命令后重启网络服务(systemctl restart networking)。
    若需删除所有非默认路由,可考虑重置网络配置(如备份后删除路由配置文件)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28941.html

(0)
酷番叔酷番叔
上一篇 2025年9月23日 14:10
下一篇 2025年9月23日 14:27

相关推荐

  • Debian如何快速安装Python工具链?

    通过包管理器安装(推荐)包管理器是Linux最核心的安装方式,自动解决依赖关系且安全性高(软件源自发行版官方仓库),不同发行版命令如下:Debian/Ubuntu系(APT)sudo apt update # 更新软件源列表sudo apt install 软件包名 # 安装软件(如 sudo apt inst……

    2025年6月27日
    4200
  • 那么,Linux内核具体做哪些重要工作呢?我们可以从几个关键方面来看

    Linux内核核心工作包括:管理进程调度与资源分配、控制内存使用、通过驱动程序与硬件交互、实现文件系统管理数据存储、提供网络通信支持。

    2025年7月27日
    4200
  • Linux系统如何配置网络实现上网?

    Linux系统作为广泛使用的操作系统,其上网功能依赖于网络配置的正确性,无论是日常办公、服务器管理还是开发环境,稳定的网络连接都是基础,本文将从基础原理到实际操作,详细讲解Linux系统如何实现上网,涵盖有线连接、无线连接、移动网络共享、代理设置及故障排查等内容,帮助用户全面掌握Linux上网配置方法,Linu……

    2025年8月25日
    3100
  • Linux系统如何启用Telnet服务及配置步骤?

    在Linux系统中,Telnet是一种基于TCP/IP的协议,用于远程登录和管理设备,通过命令行界面实现交互式操作,尽管因其明文传输特性存在安全隐患,但在内网调试、兼容旧设备等场景中仍有应用,本文将详细说明Linux系统启用Telnet服务的完整流程,涵盖安装、配置、防火墙设置及测试方法,帮助用户快速搭建环境……

    2025年9月16日
    2100
  • linux如何使用裸设备

    Linux中,使用裸设备需先识别设备文件(如/dev/sdX),

    2025年8月17日
    3100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信