关于linux的添加永久静态路由的static-routes方法
一:使用 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命令增删静态路由
关于linux的添加永久静态路由的static-routes方法的更多相关文章
- Linux系统添加永久静态路由的方法(包含Centos7)
		
一.使用route命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:A.添加到主机的路由# route add –host 192.168.1.10 dev eth0 ...
 - (转载)CentOS6 Linux系统添加永久静态路由的方法
		
https://blog.csdn.net/magerguo/article/details/49636231
 - linux route命令的使用详解 添加永久静态路由  tracert  traceroute
		
linux route命令的使用详解 添加永久静态路由 tracert traceroute route -n Linuxroute print Windows traceroute ...
 - CentOS 6.4 添加永久静态路由所有方法汇总(原创)
		
转摘,原文章地址:http://blog.sina.com.cn/s/blog_828e50020101ern5.html 查看路由的命令route -n CentOS添加永久静态路由 在使用双网卡, ...
 - CentOS7添加永久静态路由
		
CentOS7永久静态路由需要写到 /etc/sysconfig/network-scripts/route-****** 文件中,故在/etc/sysconfig/network-scripts/下 ...
 - Windows操作系统添加永久静态路由
		
1.比如:添加一条去往 10.10.10.0/24网段的静态路由,指定去往此网段的路由都走 172.20.153.254网关 route -p add 10.10.10.0 mask 255.255. ...
 - linux下(Ubuntu、centos)添加永久静态路由的方法
		
项目中经常遇到多网卡的服务器,但是一个服务器的默认网关只有一个,当需要在多个网络中访问的时候(特别是在公安.交警等政府项目中),就需要添加静态路由了. 添加静态路由的方法有很多种,下面介绍2种比较常见 ...
 - Linux添加永久静态路由
		
1.首先查看一下本机的路由 route -n 2.比如我们添加两条静态路由,访问192.168.142.100时通过192.168.142.10:访问192.168.142.200时通过192.168 ...
 - windows添加永久静态路由
		
添加路由最好在命令行管理员模式下操作 添加临时路由命令,重启后失效 route add 172.16.1.0 mask 255.255.255.0 10.0.10.19 其中,172.16.1.0 是 ...
 
随机推荐
- HDU 4709 Herding (枚举)
			
Herding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
 - How to Run Syncthing 24/7 as a Windows Service with AlwaysUp
			
http://www.coretechnologies.com/products/AlwaysUp/Apps/RunSyncthingAsAWindowsService.html Automatica ...
 - How To Backup Your Android Phone’s Boot, Recovery And System Partition Images -- RomDump
			
One can’t stress enough on the importance of backups and when it comes to tinkering with your Androi ...
 - mr
			
大数据技术 —— MapReduce 简介 本文为senlie原创,转载请保留此地址:http://www.cnblogs.com/senlie/ 1.概要很多计算在概念上很直观,但由于输入数据很大, ...
 - HTML5中的Web Storage(sessionStorage||localStorage)理解与简单实例
			
Web Storage是什么? Web Storage功能,顾名思义,就是在Web上针对client本地储存数据的功能,详细来说Web Storage分为两种: sessionStorage: 将数据 ...
 - Spring3数据库事务管理机制
			
Spring对事务的解决办法其实分为2种:编程式实现事务,AOP配置声明式解决方案. http://jinnianshilongnian.iteye.com/blog/1496953 Spring提供 ...
 - matlab 文件遍历
			
function MyGetFiles(F)path=F;filelist=dir(fullfile(path,'*.JPG'));n=length(filelist);for i=1:n f=str ...
 - UIButton使用方法汇总
			
//按钮初始化类方法 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];//这里创建一个圆角矩形的按钮 //按 ...
 - 第二章 Java浮点数精确计算
			
1.实际意义 在实际开发中,如果需要进行float或double的精确计算(尤其是财务计算),直接使用float或double是不行的(具体的例子看下边的代码的main方法的测试结果),需要使用Big ...
 - [置顶] Django 微信开发(一)——环境搭建
			
Django 微信开发(一)——环境搭建 随着移动互联网时代的到来,微信——一个改变着我们生活的产品悄悄走近了我们的生活.我们不得不觉得自己很幸运,自己能在这个世界上遇到像QQ.微博.微信这样优秀的产 ...