当前位置:

首页 > 系统应用 > Linux怎么配置静态路由永久生效 Linux下route与ip命令详解

Linux怎么配置静态路由永久生效 Linux下route与ip命令详解

Linux怎么配置静态路由永久生效 Linux下route与ip命令详解 很多朋友在配置Linux静态路由时,都踩过同一个坑:明明用route命令加得好好的,怎么一重启服务器,路由就“消失”了呢? 这里必须明确一个核心概念:无论是传统的route命令,还是更现代的ip route,它们所做的修改都仅

本文目录

    Linux怎么配置静态路由永久生效 Linux下route与ip命令详解

    Linux怎么配置静态路由永久生效 Linux下route与ip命令详解

    很多朋友在配置Linux静态路由时,都踩过同一个坑:明明用route命令加得好好的,怎么一重启服务器,路由就“消失”了呢?

    这里必须明确一个核心概念:无论是传统的route命令,还是更现代的ip route,它们所做的修改都仅限于当前运行的内核,属于“临时操作”。想让路由配置在系统重启后依然坚挺,必须依赖系统层面的配置文件或网络管理机制。下面,我们就来把这两类工具和不同系统的永久配置方法彻底讲清楚。

    route 命令只管当前会话,别指望它永久保存

    先说说这位“老前辈”。route命令语法直观,上手快,但功能也相对受限。它直接操作内核路由表,完全不参与系统的启动流程。举个例子,你执行了route add -net 10.20.0.0/16 gw 10.10.1.1,用route -n查看,条目确实立刻出现了。但只要执行一次systemctl restart network,或者干脆重启机器,这条路由就会被打回原形。

    正因为这种“临时性”,一些让人头疼的错误现象就出现了:

    • 路由加上了,但ping 10.20.0.1就是不通——问题可能出在网关本身不可达,而route命令可不会帮你校验网关的连通性。
    • 添加路由后,SSH连接突然断了——这很可能是新路由覆盖或与默认路由发生了冲突,route同样不会给出任何优先级提示。
    • 想用route del删除路由,却报错SIOCDELRT: No such process——这通常是删除时指定的目标格式不匹配,比如添加时用了-net参数,删除时却没带netmask。

    使用route时,有几个参数细节必须留意:

    • -host(主机路由)和-net(网络路由)必须显式指定,不能省略。直接写route add 10.20.0.0/16是会报错的。
    • gw(网关)和dev(出口设备)两者不能同时省略,至少得填一个。如果只写dev eth0,意思是指向直连子网,数据包不经过网关。
    • 查看路由时,-n参数不是可选项,而是强烈建议加上。不加的话,命令会尝试进行DNS反向解析,在缺乏DNS服务的环境里,这个动作会卡住很久。

    ip route 更推荐用于临时操作,兼容性与语义更清晰

    如果你需要做临时路由调整,那么ip route(来自iproute2工具套件)通常是更好的选择。它比route更现代,参数设计也更统一。添加同一条路由,命令是ip route add 10.20.0.0/16 via 10.10.1.1 dev eth0,你看,不需要区分-net,也不需要写netmask,直接支持CIDR格式,清爽多了。

    它确实解决了route的一些痛点:

    • 删除更宽松:ip route del 10.20.0.0/16就行,不必把添加时的via和dev参数再重复写一遍。
    • 控制更精细:可以方便地设置路由优先级(metric 100),或者用ip route replace直接替换已存在的条目。
    • 对IPv6原生支持:直接使用ip -6 route即可,而在很多老版本系统里,route -6这个命令根本不存在。

    不过,请务必记住关键一点:ip route本质上和route一样,它只修改运行时的路由表,并不会将配置写入任何文件。所以,它依然是“临时”的。

    CentOS/RHEL 系统永久路由靠 /etc/sysconfig/static-routes

    那么,在CentOS或RHEL 6/7这类使用传统network-scripts的系统里,永久路由到底怎么配?答案是依靠/etc/sysconfig/static-routes这个文件。它不是脚本,而是一个纯文本的规则集,系统服务/etc/sysconfig/network-scripts/ifup-routes会在网络接口启动时自动读取并加载它。

    文件内容的正确写法是这样的:

    any net 10.20.0.0/16 gw 10.10.1.1
    any net 192.168.5.0/24 dev eth1

    这里有几个关键点需要敲黑板:

    • 每行必须以any开头,不要再写eth0之类的具体接口名(那是已经被弃用的旧版写法)。
    • 掩码推荐使用CIDR格式(/16),虽然net 10.20.0.0 netmask 255.255.0.0这种写法也合法。
    • 一行就是一条路由规则,不支持合并。空行和以#开头的注释行会被忽略。
    • 修改文件后,必须重启网络服务(RHEL7用systemctl restart network,RHEL6用service network restart)才能生效,简单的reload是不行的。

    另外,千万别图省事,把route add命令塞进/etc/rc.local。因为像NFS挂载、容器网络这些服务,它们的启动顺序可能早于rc.local,届时会因为找不到路由而失败。

    Ubuntu/Debian 系统永久路由必须走 Netplan YAML

    如果你用的是Ubuntu 18.04以上或Debian 10以上的系统,那套方法就完全行不通了。这些系统默认使用Netplan管理网络,静态路由必须写在/etc/netplan/*.yaml配置文件里。

    来看一个典型的配置片段:

    network:
      version: 2
      ethernets:
        eth0:
          addresses: [10.10.1.10/24]
          routes:
            - to: 10.20.0.0/16
              via: 10.10.1.1
              on-link: true

    配置Netplan时,有几个细节容易出错:

    • on-link: true这个选项表示网关与本机在同一子网,发包时不查询ARP缓存。如果网关在另一个子网,这项必须删除或设为false。
    • 当配置中同时存在默认路由和其他静态路由时,Netplan不会自动调整路由优先级(metric),如果出现多条默认路由,必须手动设置metric值来避免冲突。
    • 修改YAML文件后,必须执行sudo netplan apply来应用。注意,这个命令会重新配置所有网络接口,很可能导致当前的SSH连接中断。

    最后提一个通用且极易被忽略的要点:无论是static-routes还是Netplan,配置系统都不会在写入时验证网关的可达性。即使你配置的gw 192.168.99.1当前根本ping不通,路由条目依然会被成功添加到系统里,只是所有转发尝试都会失败。因此,排查路由问题时,别只看ip route show有没有那条记录,更要用ip route get 10.20.0.5这样的命令,去查看到达目标地址的真实下一跳路径。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用 Linux
    相关文章 更多
    linux删除用户与用户组的方法及命令教程
    linux删除用户与用户组的方法及命令教程

    掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

    Linux如何开启端口号?开放端口命令详解
    Linux如何开启端口号?开放端口命令详解

    详细讲解Linux如何开启端口号以及常用的开放端口命令。

    crossover卸载软件下载及重新安装教程
    crossover卸载软件下载及重新安装教程

    遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。