在linux下永久添加静态路由

本文详细介绍在Linux环境下如何使用route和ip命令添加、删除静态路由,以及如何确保路由配置在重启后仍然有效。提供了两种方法来实现永久性路由配置,包括在/etc/rc.local中添加命令和在/etc/sysconfig/static-routes中配置路由。

在linux下永久添加静态路由有两种方法:

 

添加路由的命令:

1,route add

1

2

3

4

route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0#添加一条静态路由

route add default gw 192.168.0.1#添加默认路由

route del -net 192.168.1.0/24 gw 192.168.0.1#删除一条路由

route -n#查看路由表

2,ip ro add

1

2

3

4

ip ro add 192.56.76.0/24 dev 192.168.0.1#添加一条静态路由

ip ro add default via 192.168.0.1 dev eth0#添加默认路由

ip ro del 192.168.1.0/24#删除一条路由

ip route show#查看路由表

 

常见参数:

add 增加路由

del 删除路由

via 网关出口IP地址

dev 网关出口物理设备名

 

让路由重启服务器后依然生效:

1,在/etc/rc.local里面添加:

添加路由命令为:直接将在命令行操作的命令复制到该文件中,保存退出即可。

2,在/etc/sysconfig/static-routes文件里面写入:

如果该文件不存在,则手动创建,添加内容格式为:

参照/etc/init.d/network文件里面的shell语句:

1

2

3

4

5

6

                # Add non interface-specific static-routes.

                if [ -f /etc/sysconfig/static-routes ]; then

                   grep "^any" /etc/sysconfig/static-routes while read ignore args ; do

                   /sbin/route add -$args

                done

                fi

则,如果要添加一条静态路由,命令为:

1

               route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

那么,在/etc/sysconfig/static-routes文件中添加格式为:

1

               any -net 192.56.76.0 netmask 255.255.255.0 dev eth0

 

两种方式添加静态路由对比:

1,rc.local:

重启服务器生效;

重启网络服务,则静态路由失效;

rc.local是系统启动后最后运行的一个脚本,因此如果有如NFS需要网络才能挂载的服务需求,则该方式不适合;

2,static-routes:

重启服务器生效;

重启网络服务生效:

适合需要网络需求的服务;

 

脚本添加静态路由的方法和rc.local就差不多了:

这种方法其实也是自己写脚本,放在/etc/rc3.d/ 开头设置为S。

S意思是启动,数字是顺序,K意思是停止。

一般是启动是守护进程在某个模式的启动顺序。

数字越小启动的顺序越靠前;

/etc/rc3.d是文本多用户环境,一般生产环境都是这个环境。

 

其坏处也是:重启网络后失效。

 

总结:

如果需要添加静态路由,尽量将静态路由添加到/etc/sysconfig/static-routes文件中。避免因重启网络服务导致路由失效,从而避免故障的发生。

Linux 系统中,配置永久静态路由需要确保在系统重启后仍然保留这些路由规则。不同的 Linux 发行版可能有不同的配置方法,但通常涉及修改系统配置文件以在启动时自动加载静态路由规则。以下是一些常见 Linux 系统中添加永久静态路由的配置示例和方法。 ### CentOS 6 中配置永久静态路由 在 CentOS 6 系统中,可以通过 `/etc/sysconfig/static-routes` 文件来配置静态路由规则。该文件中的每一行定义一条静态路由规则,并在系统启动时通过 `/etc/rc.d/rc.local` 或相关网络初始化脚本加载。例如: ```bash any net 172.17.33.0 netmask 255.255.255.0 gw 10.0.4.1 ``` 上述配置表示将目标网段 `172.17.33.0/24` 的数据包通过网关 `10.0.4.1` 转发[^2]。 系统启动时会读取该文件并执行对应的 `route add` 命令,确保静态路由生效。可以使用如下脚本片段验证其加载机制: ```bash if [ -f /etc/sysconfig/static-routes ]; then grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do /sbin/route add -$args done fi ``` 该脚本遍历 `static-routes` 文件中的每一行并执行相应的路由添加命令[^2]。 ### CentOS 7 / RHEL 7 及以上版本 对于使用 `systemd` 的系统(如 CentOS 7、RHEL 7 及更高版本),推荐使用 `networkmanager` 或直接在接口配置文件中添加路由规则。例如,在 `/etc/sysconfig/network-scripts/route-<interface>` 文件中添加以下内容: ```bash ADDRESS0=172.17.33.0 NETMASK0=255.255.255.0 GATEWAY0=10.0.4.1 ``` 其中 `<interface>` 是网络接口名称(如 `eth0`)。此配置会在指定接口启动时自动加载对应的静态路由规则。 ### 手动添加静态路由示例 可以通过 `route` 命令手动添加临时路由,用于测试或调试。例如: - 添加主机路由(指定下一跳网关 IP): ```bash route add -host 172.17.33.25 gw 10.0.4.1 ``` - 添加网段路由(指定出接口): ```bash route add -net 172.17.33.0/24 dev eth0 ``` - 添加网段路由(同时指定出接口和下一跳网关 IP): ```bash route add -net 172.17.33.0/24 dev eth0 gw 10.0.4.1 ``` 这些命令添加路由是临时的,重启后会失效。如需永久生效,需将其写入配置文件[^3]。 ### 使用 `ip route` 命令 在较新的 Linux 系统中,可以使用 `ip route` 命令替代 `route` 命令,其语法更为灵活。例如: ```bash ip route add 172.17.33.0/24 via 10.0.4.1 dev eth0 ``` 要使此路由在重启后仍然生效,可以将其添加到 `/etc/network/interfaces`(Debian/Ubuntu)或 `/etc/sysconfig/network-scripts/route-<interface>`(CentOS/RHEL)中。 ### Debian / Ubuntu 系统 在 Debian 或 Ubuntu 系统中,可以通过修改 `/etc/network/interfaces` 文件来配置静态路由。例如: ```bash auto eth0 iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1 up ip route add 172.17.33.0/24 via 10.0.4.1 dev eth0 ``` 上述配置在接口 `eth0` 启动时会自动添加指定的静态路由规则。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值