Linux 更改静态路由

一:使用 route 命令添加 
使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法: 
//添加到主机的路由 
# route add –host 192.168.1.11 dev eth0 
# route add –host 192.168.1.12 gw 192.168.1.1 
//添加到网络的路由 
# route add –net 192.168.1.11  netmask 255.255.255.0 eth0 
# route add –net 192.168.1.11  netmask 255.255.255.0 gw 192.168.1.1 
# route add –net 192.168.1.0/24 eth1 
//添加默认网关 
# route add default gw 192.168.2.1 
//删除路由
# route del –host 192.168.1.11 dev eth0
删除默认路由
#route del default gw 192.168.2.1 
二:在linux下设置永久路由的方法: 
1.在/etc/rc.local里添加 
方法:  
route add -net 192.168.3.0/24 dev eth0 
route add -net 192.168.2.0/24 gw 192.168.2.254 
2.在/etc/sysconfig/network里添加到末尾 
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev 
3./etc/sysconfig/static-routes : (没有static-routes的话就手动建立一个这样的文件) 
any net 192.168.3.0/24 gw 192.168.3.254 
any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129 
4.开启 IP 转发: 
# echo "1" >/proc/sys/net/ipv4/ip_forward (临时) 
# vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久开启) 
这里并没有错误的地方,只不过之前没有接触对这些参数没什么想法,这次正好研究了下,大概了解了下没个参数的意思。 
首先从最简单的是route add方法: 
route add这个是添加路由的命令,这个没什么好说的,然后是后面的-host和net参数,根据紧跟参数后面的信息可以发现host指的是添加一个主机到路由中,net是添加一个网段到路由中。在后面的参数是dev和gw,字面理解加上后面紧跟的值判断,dev表示这个host或者这段net走的是那个网口,gw是gateway,自然是通过哪个网关了。对这里为何指定网口或者指定网关都行呢,我的认识是这样的,网口上配置有网关的信息,指定的网口其实最终还是去读取这个网口对应的网关信息,等效于指定gw参数。不过指定网口一般是由于有多个网络环境的情况,如果网口没有指定网关,会去读取默认的网关,所以这里一般要求把网口的网关信息配置上去,在linux下很多时候网关信息并不是配置在网口的配置文件,比如:/etc/sysconfig/network-scripts/ifcfg-eth0 文件里面,而是在/etc/sysconfig/network这里面,所以在用dev参数的时候需要小心这点,尽可能通过指定gw的方式。 
为什么会介绍到route add方法,因为后面会有用到。现在回到主题,关于static-routes的设置。网上一般的都是写着: 
any net 192.168.3.0/24 gw 192.168.3.254 
设置的都是整个网段的,但如果是单个主机怎么设置呢?同时从厂家那边给了一个脚本是: 
eth0 x.x.x.x netmask 255.255.255.192 gw x.x.x.x 
看上去也很对的样子,但是执行发现netstat -an里面看不到添加的信息,完全不行。 
然后我们在看下static-routes这个文件的作用,根据网上的说法,static-routes其实在被network这个脚本调用的,打开这个脚本: 
/etc/rc.d/init.d/network  
里面有写到: 
# 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 
network在执行的时候到static-routes里面寻找any开头的行,然后执行 
/sbin/route add -$args 相当于手动执行了route add脚本,那后面事情就简单了,回到了手动执行的方式,根据前面的说明,正确的脚本就是: 
any host 10.0.0.10 gw 192.168.1.1 
network执行的时候把any去掉,获取后面的参数:host 10.0.0.10 gw 192.168.1.1 
然后执行route add -host 10.0.0.10 gw 192.168.1.1 
注意这里host前面的-是network自带的,不需要配置到static-routes文件中。 
############################### 
echo "route add -net 172.16.100.0/24 gw 192.168.6.249" >>/etc/rc.local 使得在系统重启之后,加入这条命令。 
################################################################ 
Debian/Ubuntu RedHat/CentOS/Fedora如何永久添加静态路由 
目前Linux系统网络配置基本都差不多,但是不同的发行版又有些不同,常见主要区分两大类型: 
(1)RedHat(RHEL)/CentOS/Fedora Linux是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面。 
(2)Debian/Ubuntu Linux网络配置则是存在/etc/network/目录下面的几个文件里面。 
比如我们要给linux系统添加静态路由,就要区分不同的平台,RedHat(RHEL)/CentOS/Fedora Linux环境永久添加静态路由通常是写在诸如/etc/sysconfig/network-scripts/route-eth0这些文件里。而Debian/Ununtu下有所不同,添加路由的脚本放到/etc/network/interfaces里执行。 
一、Debian平台实例: 
Debian/Ununtu添加路由的脚本放到/etc/network/interfaces里执行: 
auto eth0 
iface eth0 inet static 
address 192.168.1.88 
netmask 255.255.255.0 
gateway 192.168.1.1 
up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 
down route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 
二、RedHat、CentOS、Fedora平台实例: 
使用配置文件/etc/sysconfig/network-scripts/route-interface,interface可以根据实际的网卡换成网卡名,比如我要在eth0上加静态路由,那就写route-eth0 
配置文件的格式如下: 
ADDRESS0=X.X.X.X 
NETMASK0=x.x.x.x 
GATEWAY0=X.X.X.x 
如果有多条静态路由要建立,那么继续在文件里追加,ADDRESS、NETMASK、GATEWAY后面的数字递增即可。如有2条记录: 
ADDRESS0=X.X.X.X 
NETMASK0=x.x.x.x 
GATEWAY0=X.X.X.x 
ADDRESS1=X.X.X.X 
NETMASK1=x.x.x.x 
GATEWAY1=X.X.X.x 
采用规范的方法的好处如下: 
1.系统启动的时候自动加上这些静态路由,无需写rc.local 
2.如果修改了静态路由,只需要service network restart即可,无需手动使用route命令增删静态路由
时间: 2024-11-07 04:59:15

Linux 更改静态路由的相关文章

Linux下静态路由配置命令

linux下静态路由修改命令 方法一: 添加路由 route add -net 192.168.1.0/24 gw 192.168.1.1 route add -host 192.168.1.8 dev 192.168.1.1 删除路由 route del -net 192.168.0.0/24 gw 192.168.0.1 add 增加路由 del 删除路由 -net 设置到某个网段的路由 -host 设置到某台主机的路由 gw 出口网关 IP地址 dev 出口网关 物理设备名 增加默认路由

《Linux系统静态路由和火墙路由》

本篇主要写的是关于静态路由表的添加,和如何让你不能上网的主机通过火墙路由表实现上网的功能. 静态路由表: 要是你的主机是2块网卡,并且做了网卡的绑定,依照我下面的方法是成功不了的,你可以去编辑: # vim /etc/rc.d/rc.local ip route add 12.0.0.1/24 via 192.168.1.113 sh /etc/rc.d/rc.local        //这样做就行了 下面我们来看常规的路由表的添加: 我的系统默认的路由表. 下面添加一块路由表:这样的添加只是

linux添加静态路由

1.使用route命令,查看本机路由直接输入route回车即可.route 命令参数: add     增加路由 del     删除路由 -net    设置到某个网段的路由 -host   设置到某台主机的路由 gw      出口网关 IP地址 dev     出口网关 物理设备名 example: 添加路由 route add -net 192.168.0.0/24 gw 192.168.0.1 route add -host 192.168.1.1 dev 192.168.0.1 删除

linux更改静态ip

linux系统,严格按照下面步骤修改,既可以改成静态ip 如何在linux系统中设置静态ip地址 注意:文中的192.168.1.~应改成192.168.0.~,别照抄.第6步可以忽略.

配置Linux静态路由和配置IP

今天有两台戴尔2U服务器,需要上架.上架前,老大让我将两个网卡配置上IP,网卡1是专线IP10.xx.xx.57,网卡2是内网IP192.168.1.157.交代我时,还说配上Linux的静态路由,于是我就开始配置了: eth0: DEVICE='eth0' IPADDR=10.XX.XX.57 NETMASK=255.xxx.xxx.192 DATEWAY=10.130.116.1 eth1: DEVICE='eth1' IPADDR=192.168.1.157 NETMASK=255.255

centos添加静态路由

Linux下静态路由修改命令 方法一: 添加路由route add -net 192.168.0.0/24 gw  192.168.0.1 route add -host 192.168.1.1 dev 192.168.0.1删除路由route del -net 192.168.0.0/24 gw 192.168.0.1 add 增加路由del 删除路由-net  设置到某个网段的路由-host 设置到某台主机的路由gw 出口网关 IP地址dev 出口网关 物理设备名 增 加默认路由 route

linux 下配置静态路由

实验拓扑图 1.  首先在B计算机下给eth0和eth1设置IP地址 打开配置文件 #vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=网卡的代号 BOOTPROTO=是否使用 dhcp, 试验中选择不使用 HWADDR=是否加入网卡卡号(MAC) IPADDR=就是IP地址 NETMASK=掩码 NETWORK=网域,也就是你所在的是哪一个网段 ONBOOT=这里要选择启用,也就是YES GATEWAY=网关 BROADCAST=广播地址

linux下永久添加静态路由

在linux下永久添加静态路由有两种方法: 添加路由的命令: 1,route add 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 ip ro add 192.56.76.0

Linux双网卡静态路由修改

本人正在学习Linux运维,在做架构时需要虚拟多台服务器且配置双网卡 , 当设置好双网卡IP的配置时发现 , 系统会自动选择一个网卡作为默认路由 . 而在我的环境中系统选择的网卡并非我所想要的 , 而且将默认路由写入rc.local开机可以执行 , 但用/etc/init.d/network重启网卡配置就会出现路由恢复的问题 , 如果这是在生产环境就需要去现场处理 . 所以在网上找到一个修改静态路由帖子(原文地址会在最后贴出) , 可以在 /etc/init.d/network脚本下执行的方法