首页 > 系统相关 >Linux 添加静态路由

Linux 添加静态路由

时间:2023-12-28 15:07:22浏览次数:43  
标签:gw 静态 route 192.168 etc add Linux 路由


Linux 添加静态路由

在日常使用中,服务器有两个IP地址,两块网卡的配置,访问不同网段,这种情况很常见。但我们需要创建额外的路由条目,以确定通过正确的网关转发数据包,使interface能够正常通信。

以下在CentOS 7测试通过

一、使用route命令加入临时路由,重启后将失效

route 命令
参数:

add     增加路由
del     删除路由
-net    设置到某个网段的路由
-host   设置到某台主机的路由
gw      出口网关 IP地址
dev     出口网关 物理设备名
# 加入到主机的路由
route add -host 192.168.1.123 dev eth0
route add -host 192.168.1.123 gw 192.168.1.1

# 加入到网络的路由
route add -net 192.168.1.123 netmask 255.255.255.0 eth0
route add -net 192.168.1.123 netmask 255.255.255.0 gw 192.168.1.1
route add -net 192.168.1.123 netmask 255.255.255.0 gw 192.168.1.1 eth1
route add -net 192.168.1.0/24 eth1

# 加入默认网关
route add default gw 192.168.1.1

# 删除路由
route del -host 192.168.1.11 dev eth0
route del -net 192.168.1.123 netmask 255.255.255.0
# 查看路由信息
ip route
route -n

二、在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命令语法添加

route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254
route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.1.100 dev eth0

修改过的文件:
/etc/rc.d/rc.local 文件示例

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254
route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.1.100 dev eth0

3. 写入/etc/sysconfig/static-routes文件(推荐)

默认在/etc/sysconifg文件夹中是没有这个文件的,须要我们手工创建。对这个文件的调用在以下:

/etc/init.d/network:
        # Add non interface-specific static-routes.
        if [ -f /etc/sysconfig/static-routes ]; then
           if [ -x /sbin/route ]; then
               grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
                   /sbin/route add -$args
               done
           else
               net_log $"Legacy static-route support not available: /sbin/route not found"
           fi
        fi

添加操作如下:

vi /etc/sysconfig/static-routes
any net 192.168.1.0/24 gw 192.168.1.1
any net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1
any host 10.19.190.11/32 gw 10.19.177.10
any host 10.19.190.12 gw 10.19.177.10

这样的方式的话,和rc.local相比,比较有用。还比方nfs,这个路由的生效时间是在网络服务network启动的时候生效的,而其它的一些网络相关服务都是在网络服务启动成功之后再启动的,所以可以保证网络链路的通畅。并且,假设我重新启动了网络服务,这个脚本是在网络服务启动里面的脚本调用。因此,也增加了自己主动上设置的相关路线。

4. 创建/etc/sysconfig/network-script/route-eth0

# 在/etc/sysconfig/network-script/目录下创建名为route-eth0的文件
vi /etc/sysconfig/network-script/route-eth0
# 在此文件添加如下格式的内容
192.168.1.0/24 via 192.168.0.1
# 重启网络验证有效
systemctl restart network


标签:gw,静态,route,192.168,etc,add,Linux,路由
From: https://blog.51cto.com/u_15647075/9014922

相关文章

  • Linux 挂载 IP SAN
    CentOS7挂载IPSAN环境描述IPSAN为DellEQLPS4100,创建卷名称ODB01,分别设置指定IP允许访问和CHAP账户访问。IPSAN对外服务IP:10.3.6.10CentOS19087.7:10.3.5.1211.安装iSCSIinitiator和iscsiadmiscsiadm是基于命令行的iscsi管理工具,提供了对iscsi节点、会话、连接以及发现记......
  • 使用Linux背后的Shell概念和shebang的正确用法
    1.Shell的作用:解释执行用户输入的命令或程序等用户输入一条命令,shell就解释一条键盘输入命令,Linux给予响应的方式,称之为交互式 2.shebang:指的是现在文本文件中的第一行前两个字符,即#! 3.初步编写shell脚本:3.1vim脚本名.sh:创建脚本,并进入脚本编辑 ......
  • linux命令查询开启的端口
    1.netstat命令:查询显示网络连接、路由表和网络接口等信息。使用以下命令可以查看当前开启的端口netstat-tuln该命令会列出所有TCP和UDP协议的监听端口。其中,-t参数表示显示TCP协议,-u表示显示UDP协议,-l表示只显示监听状态的端口,-n表示以数字形式显示端口号。2.ss命令:......
  • 【干货】Linux运维人员必备的实用工具!
    对于Linux运维人员来讲,工具是必不可少的,因为一款好的工具不仅可以保证服务器正常运行,还可以帮助我们排除故障,那么Linux运维人员必备的实用工具有哪些?本文为大家详细介绍一下。1、Nethogs:查询进程占用带宽情况Nethogs是一个终端下的网络流量监控工具,它的特别之处在于可......
  • WSO2是一个开源的API管理平台,它提供了一套完整的解决方案,用于设计和发布API,创建和管理
    WSO2是一个开源的API管理平台,它提供了一套完整的解决方案,用于设计和发布API,创建和管理开发人员社区,以及以可扩展的方式保护和路由API流量¹。它利用来自WSO2平台的成熟组件来保护,集成和管理API¹。此外,它还与WSO2分析平台集成,提供现成的报告和警报,让您即时了解API行为¹。WSO2API......
  • Apache静态网站权限配置
    <VirtualHost*:80>DocumentRoot/var/www/htmlErrorLog${APACHE_LOG_DIR}/error.logCustomLog${APACHE_LOG_DIR}/access.logcombined<Directory/>AllowOverrideAllRequireallgranted</Directory></......
  • Linux shell编程学习笔记36:read命令
     *更新日志 *2023-12-181.根据[美]威廉·肖特斯(Willian shotts)所著《Linux命令行大全(第2版)》            更新了-e、-i、-r选项的说明           2.更新了2.8的实例,增加了gif动图           3.补充......
  • Linux对时服务
    一、服务端配置:IP:192.168.1.10(1)备份/ect/ntp.conf,删除该文件,新建空文件vim/etc/ntp.confdriftfile/var/lib/ntp/driftrestrictdefaultnomodifynotrap#允许所有IP客户机restrict127.0.0.1#允许本地同步,便于监控,配置restrict-6:::1server127.127.1.0#需要同步上层......
  • 无人值守安装之后设置主机名和静态地址【原创】【成长-0001】
    简单的主机名设置和网卡设置脚本,记录成长点点滴滴。如有错误,各位多多指教!......
  • (Linux环境)MySQL数据库定时备份
    最近遇到MySQL数据库备份的问题,其实备份可以直接备份数据库数据目录,但是这个方法比较困难,得停数据库才能备份。于是写了shell脚本,采用for循环备份MySQL里面的所有库,然后用rsync软件将备份数据同步到其他服务器上实现异地备份,保留7天的备份数据。脚本展示如下:#!/bin/bash#date202......