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

相关推荐

  • Linux系统如何打开网页?操作步骤有哪些?

    在Linux系统中,打开网页的方式多种多样,具体取决于使用场景(如是否有图形界面、是否为远程服务器、是否需要轻量级工具等),本文将从图形界面浏览器、命令行文本浏览器、远程访问网页等角度,详细介绍Linux环境下打开网页的常用方法及操作细节,图形界面浏览器:适合桌面环境用户对于安装了图形界面的Linux发行版(如……

    2025年9月29日
    11300
  • Linux系统下Wireshark怎么用?新手详细操作步骤与使用技巧

    在Linux系统中使用Wireshark进行网络流量分析,需要完成安装、启动、捕获、过滤及分析等步骤,以下是详细操作指南,安装Wireshark不同Linux发行版的安装命令略有差异:Ubuntu/Debian:执行sudo apt update && sudo apt install wire……

    2025年8月29日
    12500
  • Linux脚本失控?安全终止全攻略

    前台运行脚本的停止方法若脚本在终端前台运行(直接通过./script.sh启动):Ctrl + C 组合键立即发送 SIGINT 信号终止脚本,适用于大多数情况,脚本会执行预设的清理操作后退出,注意:若脚本捕获了该信号(如使用 trap 命令),可能无法立即停止,Ctrl + Z 组合键 → 终止挂起任务按 C……

    2025年6月17日
    15600
  • Linux如何查看当前路径的命令及操作方法?

    在Linux操作系统中,当前路径(也称为工作目录,Working Directory)是指用户当前正在操作的目录位置,无论是执行文件、管理目录还是编写脚本,准确获取当前路径都是基础操作,本文将详细介绍Linux中查看当前路径的多种方法,包括常用命令、参数选项、实际应用场景及不同方法的对比,帮助用户全面掌握这一技……

    2025年9月29日
    12900
  • Linux如何实现IO持续输出?

    在Linux系统中,“一直输出io”通常指持续生成I/O负载或实时监控I/O状态,常见于性能测试、系统调试或长期监控场景,以下从工具使用、参数调整和注意事项三方面详细介绍实现方法,使用dd命令持续生成I/O负载dd是Linux基础的数据复制工具,通过循环调用可模拟持续读写操作,基本语法为:while :; do……

    2025年9月18日
    11500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信