Linux环境下如何添加路由的详细步骤与方法?

在Linux系统中,路由表是网络通信的核心,它决定了数据包的转发路径,正确配置路由可以确保跨网段通信、实现负载均衡或指定特定出口,本文将详细介绍Linux下添加路由的方法,包括临时路由和永久路由的配置,涵盖不同发行版的操作差异,并通过表格对比关键参数,最后解答常见问题。

.linux 下如何添加路由

临时路由添加(重启失效)

临时路由适用于测试场景或临时需求,重启系统或网络服务后配置会丢失,主要使用ip route add命令(推荐,现代Linux发行版默认)或route命令(传统工具,逐渐被替代)。

使用ip route add命令

基本语法为:
sudo ip route add <目标网络/子网掩码> via <网关地址> dev <网络接口> [metric <跃点数>] [table <路由表>]

  • 目标网络/子网掩码:要到达的网络,如168.2.0/24(表示目标网段为192.168.2.0,子网掩码255.255.255.0)。
  • via <网关地址>:下一跳路由器的IP,如168.1.1。
  • dev <网络接口>:出站网络接口,如eth0、ens33,可通过ip a查看。
  • metric <跃点数>:路由优先级,值越小优先级越高,默认0。
  • table <路由表>:指定路由表(默认为main),用于策略路由。

示例:

  • 添加默认路由(所有未知网段流量通过网关10.0.0.1):
    sudo ip route add default via 10.0.0.1 dev eth0
  • 添加特定网段路由(目标192.168.3.0/24通过网关192.168.1.254,接口ens33,跃点数100):
    sudo ip route add 192.168.3.0/24 via 192.168.1.254 dev ens33 metric 100
  • 添加主机路由(仅目标主机192.168.1.100通过网关192.168.1.1):
    sudo ip route add 192.168.1.100/32 via 192.168.1.1 dev eth0

使用route命令(传统工具)

语法为:
sudo route add -net <目标网络> netmask <子网掩码> gw <网关地址> dev <网络接口>

示例:
sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

临时路由的删除与查看

  • 查看路由表:ip route show或route -n(-n表示以数字形式显示,避免DNS解析延迟)。
  • 删除路由:sudo ip route del <目标网络/子网掩码>,如sudo ip route del 192.168.3.0/24。

永久路由添加(重启生效)

临时路由无法满足长期需求,需通过修改配置文件实现永久保存,不同Linux发行版的配置方式差异较大,主要分为systemd-networkd、Netplan(Ubuntu/Debian)和NetworkManager(CentOS/RHEL)等。

.linux 下如何添加路由

Ubuntu/Debian(Netplan配置,较新版本)

Netplan使用YAML配置文件,通常位于/etc/netplan/目录下(如01-netcfg.yaml)。

步骤:

  1. 编辑配置文件:sudo nano /etc/netplan/01-netcfg.yaml。
  2. 添加路由配置,示例如下:
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          addresses: [192.168.1.10/24]  # 本机IP
          gateway4: 192.168.1.1         # 默认网关
          routes:
            - to: 192.168.2.0/24        # 目标网段
              via: 192.168.1.254         # 下一跳网关
              metric: 100                # 优先级
            - to: 10.0.0.0/8             # 另一个目标网段
              via: 192.168.1.254
              metric: 150
          nameservers:
            addresses: [8.8.8.8, 114.114.114.114]
  3. 应用配置:sudo netplan apply。

CentOS/RHEL(NetworkManager配置)

NetworkManager通过nmcli命令或配置文件管理路由。

方法1:使用nmcli命令

# 添加静态路由(目标192.168.3.0/24,网关192.168.1.254,接口eth0,跃点数100)
sudo nmcli connection modify "eth0" +ipv4.routes "192.168.3.0/24 192.168.1.254 100"
# 激活配置(无需重启,立即生效)
sudo nmcli connection up "eth0"

方法2:修改NetworkManager配置文件
编辑/etc/sysconfig/network-scripts/route-<接口名>(如route-eth0),添加:

ADDRESS0=192.168.3.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.254
METRIC0=100

重启网络服务:sudo systemctl restart network。

.linux 下如何添加路由

通用方法(直接修改路由表配置文件)

部分系统可通过修改/etc/rc.local(需赋予执行权限)或创建/etc/network/if-up.d/下的脚本实现开机自动添加路由,但不如上述方法稳定,不推荐。

关键参数对比与示例

下表总结了不同场景下路由配置的核心参数及示例:

场景 命令/配置 说明
添加默认路由 sudo ip route add default via 10.0.0.1 dev eth0 所有未知网段流量通过10.0.0.1
添加特定网段路由 sudo ip route add 192.168.2.0/24 via 192.168.1.254 dev ens33 目标192.168.2.0/24的流量通过192.168.1.254
添加主机路由 sudo ip route add 192.168.1.100/32 via 192.168.1.1 dev eth0 仅目标主机192.168.1.100的流量通过192.168.1.1
永久路由(Ubuntu) routes: - to: 192.168.3.0/24 via: 192.168.1.254 metric: 100(Netplan) 写入Netplan配置文件,重启生效
永久路由(CentOS) nmcli connection modify "eth0" +ipv4.routes "192.168.3.0/24 192.168.1.254" 使用NetworkManager管理,无需重启网络服务

相关问答FAQs

Q1:为什么添加的路由重启后消失了?
A:临时路由(通过ip route add添加)仅在当前会话中生效,重启系统或网络服务后会丢失,要实现永久生效,需根据发行版修改对应配置文件(如Ubuntu的Netplan、CentOS的NetworkManager),或使用nmcli等工具保存配置。

Q2:如何添加一条到达特定主机(而不是网络)的路由?
A:添加主机路由时,需将目标地址的子网掩码设置为32(IPv4)或128(IPv6),表示精确匹配该主机IP,添加到主机168.1.100的路由,命令为:sudo ip route add 192.168.1.100/32 via 192.168.1.1 dev eth0,在Netplan配置中则写为to: 192.168.1.100/32。

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

赞 (0)
酷番叔酷番叔
上一篇 2025年10月3日 11:13
下一篇 2025年10月3日 11:26

相关推荐

  • proc/mtd能查看什么?

    在Linux系统中,MTD(Memory Technology Device)是用于管理闪存设备(如NOR/NAND Flash)的核心子系统,查看MTD设备信息对嵌入式开发、固件分析或系统维护至关重要,以下是几种专业可靠的查看方法:这是最直接的方法,系统会动态列出所有MTD分区信息:cat /proc/mtd……

    2025年7月17日
    26900
  • Linux如何查看服务器IP地址?

    在Linux系统中,查询服务器地址是日常运维和网络管理中的常见需求,服务器地址可能包含本地IP地址(IPv4/IPv6)、公网IP地址、MAC地址、主机名、域名解析信息等,掌握多种查询方法可以帮助运维人员快速定位问题、配置服务或排查网络故障,以下从不同维度详细介绍Linux系统中查询服务器地址的常用命令及具体操……

    2025年10月7日
    28000
  • Linux如何修改环境变量?

    在Linux系统中,环境变量是操作系统和用户交互的重要桥梁,它们定义了系统运行时的配置信息,如程序搜索路径、默认编辑器、语言环境等,正确修改环境变量能帮助用户自定义系统行为,提升工作效率,本文将详细介绍Linux中修改环境变量的方法,包括临时修改、用户级永久修改和系统级永久修改,并辅以常用命令说明和注意事项,环……

    2025年9月8日
    25200
  • Linux如何查看自己创建的文本文件内容?

    在Linux系统中,查看创建的文本文件是日常操作中的常见需求,无论是确认文件内容、查找特定信息还是验证文件是否存在,都需要掌握多种查看方法,本文将从基础到进阶,详细说明Linux环境下查看文本文件的各类命令及技巧,帮助用户高效完成文本查看任务,查看当前目录下的文本文件列表 前,若需确认当前目录中有哪些文本文件……

    2025年10月5日
    21500
  • Linux下如何高效搜索文件?find与grep命令用法详解!

    在Linux系统中,高效搜索文件是日常管理和运维的核心技能之一,Linux提供了多种命令工具,支持基于文件名、内容、属性等不同维度的搜索,掌握这些工具能显著提升工作效率,本文将详细介绍常用搜索命令的使用方法、参数及场景示例,基于文件名或属性的搜索:find命令find是Linux中最强大的文件搜索工具,支持按文……

    2025年8月31日
    28800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信