作者:gc(at)sysin.org,主页:www.sysin.org
转载请保留出处。
在日常使用中,服务器有两个IP地址,两块网卡的配置,访问不同网段,这种情况很常见。但我们需要创建额外的路由条目,以确定通过正确的网关转发数据包,使interface能够正常通信。
以下在CentOS 7、8测试通过
一、使用route命令加入临时路由,重启后将失效
route 命令
参数:
1 | add 增加路由 |
1 | # 加入到主机的路由 |
1 | # 查看路由信息 |
二、在Linux中添加永久路由的方法
1. 默认网关
(1)写入ifcfg文件(推荐)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
在配置ip地址的时候直接将GATEWAY的配置写入ifcfg文件。形式:GATEWAY=gw-ip
适合加入默认路由
(2)在/etc/sysconfig/network里加入到文件末尾,格式例如以下:
GATEWAY=gw-ip 或者 GATEWAY=gw-dev
2. 写入/etc/rc.loacl(不推荐)
(注意:CentOS 7必须执行“chmod +x /etc/rc.d/rc.local”来确保确保这个脚本在引导时执行。)
能够将上面提到的命令写入/etc/rc.local文件里,这样在系统启动的时候会自己主动增加相关的路由设置。
只是这样的方法有一个缺点:假设某个系统服务,比方说是NFS服务,这个服务是在启动network服务之后,在运行rc.local之前,假设你设置的有自己主动挂载的nfs。那么,这里链路的不通畅。会造成挂载的失败。另外一个就是假设你重新启动了网络server,那么路由就失效了,这个时候你不得不又一次载入这个文件,可是假设你是远程操作的呢?所以,这种方法不推荐。
方法:
编辑/etc/rc.local,使用route命令语法添加
1 | route add -net 192.168.3.0/24 dev eth0 |
修改过的文件:
/etc/rc.d/rc.local 文件示例
1 | !/bin/sh |
3. 写入/etc/sysconfig/static-routes文件
默认在/etc/sysconifg文件夹中是没有这个文件的,须要我们手工创建。对这个文件的调用在以下:
1 | cat /etc/init.d/network |
添加操作如下:
1 | vi /etc/sysconfig/static-routes |
这样的方式的话,和rc.local相比,比较有用。还比方nfs,这个路由的生效时间是在网络服务network启动的时候生效的,而其它的一些网络相关服务都是在网络服务启动成功之后再启动的,所以可以保证网络链路的通畅。并且,假设我重新启动了网络服务,这个脚本是在网络服务启动里面的脚本调用。因此,也增加了自己主动上设置的相关路线。
该方式在CentOS 8默认安装时无效。
在CentOS 8中默认使用nmcli管理网络,可以通过
yum install network-scripts
来安装传统的 network.service,恢复用这种方式配置静态路由。
4. 创建/etc/sysconfig/network-scripts/route-eth0(推荐)
1 | 在/etc/sysconfig/network-scripts/目录下创建名为route-eth0的文件 |
促销信息:
>> 阿里云:新用户2核2g仅需86元/年,2核4g企业仅需469.39元/年
>> 腾讯云:云产品限时秒杀,爆款1核2G云服务器,首年99元
>> 全球网盘极速中转,1G流量不到1元,支持 Rapidgator、Rg.to、Uploaded...
如果文章中使用的内容或图片侵犯了您的版权,请联系作者删除。如果您喜欢这篇文章或者觉得它对您有所帮助,欢迎您发表评论,也欢迎您分享这个网站,或者赞赏一下作者,谢谢!
赞赏一下