很多时候×××并不是像常规应用那样有网络设备实现的连接多个分部的网络。而大多数个人应用的时候就会出现一些问题。比如拨上×××以后原有内网的一些服务器无法访问,如OA系统等等。有没有解决办法,如果学习过网络的朋友,肯定知道是有办法的。那就是添加静态路由。

   下面我来说说如何在Windows系统和Linux系统下添加一条静态路由。

Windows系统下设置静态路由:

命令:route add

详解如下:

C:\Users\Administrator>route add ?


操作网络路由表。


ROUTE [-f] [-p] [-4|-6] command [destination]

                 [MASK netmask]  [gateway] [METRIC metric]  [IF interface]


 -f           清除所有网关项的路由表。如果与某个

              命令结合使用,在运行该命令前,

              应清除路由表。


 -p           与 ADD 命令结合使用时,将路由设置为

              在系统引导期间保持不变。默认情况下,重新启动系统时,

              不保存路由。忽略所有其他命令,

              这始终会影响相应的永久路由。Windows 95

              不支持此选项。


 -4           强制使用 IPv4。


 -6           强制使用 IPv6。


 command      其中之一:

                PRINT     打印路由

                ADD       添加路由

                DELETE    删除路由

                CHANGE    修改现有路由

 destination  指定主机。

 MASK         指定下一个参数为“网络掩码”值。

 netmask      指定此路由项的子网掩码值。

              如果未指定,其默认设置为 255.255.255.255。

 gateway      指定网关。

 interface    指定路由的接口号码。

 METRIC       指定跃点数,例如目标的成本。


用于目标的所有符号名都可以在网络数据库

文件 NETWORKS 中进行查找。用于网关的符号名称都可以在主机名称

数据库文件 HOSTS 中进行查找。


如果命令为 PRINT 或 DELETE。目标或网关可以为通配符,

(通配符指定为星号“*”),否则可能会忽略网关参数。


如果 Dest 包含一个 * 或 ?,则会将其视为 Shell 模式,并且只

打印匹配目标路由。“*”匹配任意字符串,

而“?”匹配任意一个字符。示例: 157.*.1、157.*、127.*、*224*。


只有在 PRINT 命令中才允许模式匹配。

诊断信息注释:

   无效的 MASK 产生错误,即当 (DEST & MASK) != DEST 时。

   示例: > route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1

            路由添加失败: 指定的掩码参数无效。

            (Destination & Mask) != Destination。


示例:


   > route PRINT

   > route PRINT -4

   > route PRINT -6

   > route PRINT 157*          .... 只打印那些匹配  157* 的项


   > route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2

            destination^      ^mask      ^gateway     metric^    ^

                                                        Interface^

     如果未给出 IF,它将尝试查找给定网关的最佳

     接口。

   > route ADD 3ffe::/32 3ffe::1


   > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2


     CHANGE 只用于修改网关和/或跃点数。


   > route DELETE 157.0.0.0

   > route DELETE 3ffe::/32

举例:

   我的原有网络中有192.168.1.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24、192.168.4.0/24四个私有网段。我自己在192.168.4.0/24网段。我拨上×××后,IP地址变成了一个公网的地址:114.114.114.111。问题来了,这个时候114.114.114.111和我的192.168.4.0/24不属于一个网络,当然也就不能相互通信,且分别属于公私网络,防火墙会拒绝他们之间的访问的。

如果我只想访问192.168.1.0/24网段,执行一下命令:


C:\Users\Administrator>route add 192.168.1.0 mask 255.255.255.0 192.168.4.1

这条命令的意思就是访问192.168.1.0/24网段,走192.168.4.1,也就是我本机的内网网关

如果想访问整个192.168.0.0/16网段,执行一下命令:


C:\Users\Administrator>route add 192.168.1.0 mask 255.255.255.0 192.168.4.1

这句话的意思就是访问所有192.168.0.0/16网段的数据,都从本机内网网关192.168.4.1走,其他数据从×××线路走。

注意:以上命令只是零时添加的,如果重新网卡或者主机,怎么配置丢失。如果要永久加上此静态路由,需要在整个命令后面加上参数:-p。如下:


C:\Users\Administrator>route add 192.168.1.0 mask 255.255.255.0 192.168.4.1 -p

不想要此静态路由了,使用delete route X.X.X.X 来删除。

使用:route print来打印路由表



Linux系统下静态路由的配置方法:

命令:route add

详解如下:

[root@XXOO wwwroot]# route ?

Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables

      route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.


      route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.

      route {-V|--version}                  Display version/author and exit.


       -v, --verbose            be verbose

       -n, --numeric            don't resolve names

       -e, --extend             display other/more information

       -F, --fib                display Forwarding Information Base (default)

       -C, --cache              display routing cache instead of FIB


 <AF>=Use '-A <af>' or '--<af>'; default: inet

 List of possible address families (which support routing):

   inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)

   netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)

同样Linux系统下添加静态路由的方法和Windows下差不多。只是Linux系统添加永久路由要修该多个地方。

Linux下添加主机路由:指定到达某个主机所走的路由

[root@XXOO wwwroot]# route add -host 192.168.1.10 mask 255.255.255.0 gw 192.168.4.1

此命令,意思是我要到192.168.1.10这台主机需要走我本机网关192.168.4.1

Linux下网络路由:指定到达某个网段的路由

[root@XXOO wwwroot]# route add -net 0.0.0.0 mask 0.0.0.0 gw 192.168.4.1

此命令的意思就是,到达所有网络的数据都走192.168.4.1

使用:route -n来打印路由表

其他参考命令:

一:使用 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


二:在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" >/pro
c/sys/net/ipv4/ip_forward (临时)
# vi /etc/sysctl.conf --> net.ipv4.ip_forward=1 (永久开启)