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这样的命令,去查看到达目标地址的真实下一跳路径。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Linux怎么查看文件的最后访问时间 Linux下stat命令参数详解
Linux怎么查看文件的最后访问时间 Linux下stat命令参数详解 说起查看文件的最后访问时间,也就是 atime,很多人的第一反应就是 stat 命令。没错,它确实是默认就显示这个信息。但这里有个常见的“坑”:如果你不仔细分辨,很容易把 atime 和文件的修改时间(mtime)或状态变更时间
如何在 Win11 中修改默认截图保存路径 更改系统截图文件夹位置方法
如何在 Windows 11 中自定义截图保存路径?五种方法全解析 用 Windows 11 截图,无论是快捷键 Win + Shift + S、Win + PrtScn,还是自带的截图工具,默认路径总是那个熟悉的 C: Users [用户名] Pictures Screenshots。但如果你想把
Win10怎么设置家长控制_Win10家长控制教程【避坑】
Win10家长控制功能避坑指南:云端策略是关键,本地设置不独立 想在Windows 10里管住孩子的上网时间、应用和网站?这事儿的关键,其实不在你电脑本地怎么折腾。必须明确一点:完整的家长控制功能,其核心引擎是微软的“家庭组”云端策略。本地设置只是个“操作面板”,所有限制的生效,都绑死在一个前提上—
Linux查看CPU和内存占用情况 top和free命令【教程】
别被top的“内存耗尽”骗了:看懂a vailable才是关键 在Linux系统里判断内存是否真的不够用,一个最常见的误区就是只看top命令。很多人一看到used值接近总量就慌了,其实这很可能是个假警报。真正决定系统内存余量的,是free命令输出的a vailable字段,而不是top里的used或
Linux下如何查看进程的系统调用耗时 Strace -c命令用法
Linux下如何查看进程的系统调用耗时 Strace -c命令用法 strace -c 统计系统调用耗时的原理和适用场景 先明确一点:strace -c 提供的不是实时监控,而是一份“事后总结报告”。程序运行结束后,它会汇总统计每个系统调用的调用次数、总耗时、平均耗时、错误次数,以及最关键的一项——
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

