在Linux系统中,通过ip route add
命令添加的路由规则通常不会永久保存,它们只会在当前会话中生效。当系统重新启动后,这些临时添加的路由规则会丢失。
要求在开关机之后仍然保留这条路由,需要将路由规则永久保存。在大多数Linux发行版中,可以使用以下方法之一来实现:
方法一:使用ip
命令结合sysconfig
配置文件
-
编辑配置文件:打开
/etc/sysconfig/network-scripts/route-ens3
(具体文件名可能会因网络接口名称不同而有所变化)。 -
添加路由规则:在文件中添加以下内容(假设你要添加的路由是
10.10.0.0/24 via 10.10.66.254 dev ens3
):10.10.0.0/24 via 10.10.66.254 dev ens3
-
保存文件:保存配置文件并关闭编辑器。
-
重启网络服务:执行以下命令重启网络服务,以应用更改:
sudo systemctl restart network.service
-
cd /etc/systemd/system/
[root@MiWiFi-RD04-srv system]# cat ens3-restart.service
[Unit]
Description=Restart network interface
After=network.target[Service]
Type=oneshot
ExecStart=/sbin/ifup ens3
ExecStop=/sbin/ifdown ens3
RemainAfterExit=true[Install]
WantedBy=multi-user.target
systemctl enable ens3-restart.service
systemctl start ens3-restart.service
这个文件是一个 systemd 服务单元文件,用于在系统启动时重启网络接口 ens3。让我们逐行解释它的含义: Unit 部分: [Unit] Description=Restart network interface After=network.target Description=Restart network interface:描述了这个服务单元的作用,即重新启动网络接口。 After=network.target:指定了该服务应该在 network.target 启动后才开始执行。这确保了在网络服务启动完成之后再进行接口的重启操作,避免可能的依赖问题。 Service 部分: [Service] Type=oneshot ExecStart=/sbin/ifdown ens3 && /sbin/ifup ens3 RemainAfterExit=true Type=oneshot:指定了这是一个一次性任务,即执行 ExecStart 中定义的命令后,服务即认为执行完毕。 ExecStart=/sbin/ifdown ens3 && /sbin/ifup ens3:定义了服务启动时要执行的命令。首先执行 /sbin/ifdown ens3,意味着将 ens3 网络接口停止;接着执行 /sbin/ifup ens3,表示重新启动 ens3 网络接口。 RemainAfterExit=true:指定了即使服务主进程退出后,仍将服务标记为活动状态。这是因为网络接口启动后不会保持运行一个持久的进程,所以需要手动设置为 true,以便 systemd 正确理解服务的运行状态。 Install 部分: [Install] WantedBy=multi-user.target WantedBy=multi-user.target:指定了在哪个系统目标 (multi-user.target,通常是默认的多用户环境) 下会启用这个服务。这意味着当系统进入多用户模式时,这个服务将会被启动。 总结:这个 systemd 服务单元文件的作用是定义了一个服务,用于在系统启动时自动重启 ens3 网络接口。它会在网络服务启动完成后执行,确保网络接口配置的正确性。
方法二:使用nmcli
命令(对于使用NetworkManager的系统)
-
使用
nmcli
添加路由:执行以下命令添加路由:sudo nmcli con mod ens3 +ipv4.routes "10.10.0.0/24 10.10.66.254"
这条命令会将路由添加到
ens3
网卡的配置中。 -
保存更改:执行以下命令以使更改生效:
sudo nmcli con up ens3
方法三:使用route
命令结合启动脚本
-
创建启动脚本:创建一个启动脚本,例如
/etc/network/if-up.d/add-route
:sudo nano /etc/network/if-up.d/add-route
-
添加路由:在脚本中添加以下内容:
#!/bin/sh /sbin/ip route add 10.10.0.0/24 via 10.10.66.254 dev ens3
-
sudo chmod +x /etc/network/if-up.d/add-route
这些方法中,每一种都可以确保在系统启动后,指定的路由规则会被加载并保留。选择其中一种适合你的操作系统和网络配置的方法即可。
- Afrikaans
- Albanian - shqipe
- Arabic - العربية
- Armenian - Հայերէն
- Azerbaijani - azərbaycanca
- Basque - euskara
- Belarusian - беларуская
- Bengali - বাংলা
- Bulgarian - български
- Catalan - català
- Chinese - 中文(简体中文)
- Chinese - 中文 (繁體中文)
- Croatian - hrvatski
- Czech - čeština
- Danish - dansk
- Dutch - Nederlands
- English
- Esperanto - esperanto
- Estonian - eesti
- Filipino
- Finnish - suomi
- French - français
- Galician - galego
- Georgian - ქართული
- German - Deutsch
- Greek - Ελληνικά
- Gujarati - ગુજરાતી
- Haitian Creole - kreyòl ayisyen
- Hebrew - עברית
- Hindi - हिन्दी
- Hungarian - magyar
- Icelandic - íslenska
- Indonesian - Bahasa Indonesia
- Irish - Gaeilge
- Italian - italiano
- Japanese - 日本語
- Kannada - ಕನ್ನಡ
- Korean - 한국어
- Latin - Lingua Latina
- Latvian - latviešu
- Lithuanian - lietuvių
- Macedonian - македонски
- Malay - Bahasa Melayu
- Maltese - Malti
- Norwegian - norsk
- Persian - فارسی
- Polish - polski
- Portuguese - português
- Romanian - română
- Russian - русский
- Serbian - Српски
- Slovak - slovenčina
- Slovenian - slovenščina
- Spanish - español
- Swahili - Kiswahili
- Swedish - svenska
- Tamil - தமிழ்
- Telugu - తెలుగు
- Thai - ไทย
- Turkish - Türkçe
- Ukrainian - українська
- Urdu - اردو
- Vietnamese - Tiếng Việt
- Welsh - Cymraeg
- Yiddish - יידיש