遇到一个朋友问我FTP服务器的问题,说他的服务器有时内网不能访问服务,有时外网不能访问服务。简述下环境:他的服务器有2个网卡,分别是给企业内网FTP(192.168.0.0段)和外网FTP(125.71.*.*段)服务的。服务器所在的地址A网卡(内网)是172.16.0.0,而B网卡(外网)是125.71.*.*,这2个地址段都是静态IP地址,要交换数据,肯定得设网关。如果直接给windows设置2个默认网关(一般朋友可能认为默认网关就是网关),就会出现这样的提示.
如果你确定的话,就会出现了不能正常工作的现象。现在解释这是为什么。首先看由此设定的tcp/ip参数而产生的路由表:
在Windows中,默认网关是指发往0.0.0.0缺省网段的地址,这是一个特殊的地址,其目的地为所有不知道路由的网段,所以在设置了2个默认网关的时候,其中的一个网关将被启用,而另外一个将作为冗余。从路由表中,我们可以看到他们的metric值都为10,这就是说他们的计量标准,都是一样的。此时Windows就不知道怎么使用这个默认网关,于是就出现一下选择125段的,一会又选择172段的,造成了他的问题。
现在问题明了了,就好解决了。解决的方法就是:设置网络的时候两个网卡都不设置网关,然后在静态路由表里单独永久添加两个网关就可以了。关于windows的路由表命令,这里阐述一下:
route /? (系统自带的是英文解释,我自己翻译的)
列举当前系统的路由表
ROUTE [-f] [-p] [命令 [目的地][MASK空格+子网掩码] [网关] [计量标准] [接口]
-f 清除现在所有去往网关的路由信息 [/color]
-p 使用了add命令后,用-p命令,使得系统自动加载和使用,默认是临时的,重启将丢失,其他命令可以不使用。win95下不支持。如果你忘记了-p,可以使用bat文件放在启动组。
命令 举例:
PRINT 列举当前路由信息
ADD 添加一条路由信息
DELETE 删除一条路由信息
CHANGE 修改当前路由信息
目的地 目标网络,既即将发往的地址段
MASK 子网掩码标识
子网掩码 目标网络的子网掩码,不指定将使用255.255.255.255
网关 发往目标网络的网关,既下一跳地址
接口 指定的下一跳接口
计量标准 用于矢量路由协议的路径计算和选择,一般不写。相关详细见:http://zhidao.baidu.com/question/19389764.html
看完了介绍一头雾水是不?那么现在就来套那个问题,既然已经知道了他的需求,写命令就容易了。在cmd里面加2条静态路由:
route -p add 0.0.0.0[color=#FF0000] MASK 0.0.0.0 125.71.*.* **该条目注意,添加的是网段,缺省的是0.0.0.0,不是具体的地址,否则需要通配码。**
route -p add 192.168.0.0 MASK 255.255.0.0 172.16.0.1 **同样的,要写网段。因为不知道他的子网情况,所以用16位掩码全部给他匹配了所有的子网
另一种写法是:从route print上面看到的0xY这个接口IF(InterFace)也可以写为
route -p add 0.0.0.0 MASK 0.0.0.0 IF Y **Y=在route print看到的0xY后面的大Y**
输入后,问题搞定。。
最后补充一下change命令,如果你需要修改路由表,可以用这个命令:
route change 0.0.0.0 MASK 0.0.0.0 125.71.*.* **缺省网络所有的ip和子网掩码均为0。该命令修改默认网关的指向.
如果你确定的话,就会出现了不能正常工作的现象。现在解释这是为什么。首先看由此设定的tcp/ip参数而产生的路由表:
在Windows中,默认网关是指发往0.0.0.0缺省网段的地址,这是一个特殊的地址,其目的地为所有不知道路由的网段,所以在设置了2个默认网关的时候,其中的一个网关将被启用,而另外一个将作为冗余。从路由表中,我们可以看到他们的metric值都为10,这就是说他们的计量标准,都是一样的。此时Windows就不知道怎么使用这个默认网关,于是就出现一下选择125段的,一会又选择172段的,造成了他的问题。
现在问题明了了,就好解决了。解决的方法就是:设置网络的时候两个网卡都不设置网关,然后在静态路由表里单独永久添加两个网关就可以了。关于windows的路由表命令,这里阐述一下:
route /? (系统自带的是英文解释,我自己翻译的)
列举当前系统的路由表
ROUTE [-f] [-p] [命令 [目的地][MASK空格+子网掩码] [网关] [计量标准] [接口]
-f 清除现在所有去往网关的路由信息 [/color]
-p 使用了add命令后,用-p命令,使得系统自动加载和使用,默认是临时的,重启将丢失,其他命令可以不使用。win95下不支持。如果你忘记了-p,可以使用bat文件放在启动组。
命令 举例:
PRINT 列举当前路由信息
ADD 添加一条路由信息
DELETE 删除一条路由信息
CHANGE 修改当前路由信息
目的地 目标网络,既即将发往的地址段
MASK 子网掩码标识
子网掩码 目标网络的子网掩码,不指定将使用255.255.255.255
网关 发往目标网络的网关,既下一跳地址
接口 指定的下一跳接口
计量标准 用于矢量路由协议的路径计算和选择,一般不写。相关详细见:http://zhidao.baidu.com/question/19389764.html
看完了介绍一头雾水是不?那么现在就来套那个问题,既然已经知道了他的需求,写命令就容易了。在cmd里面加2条静态路由:
route -p add 0.0.0.0[color=#FF0000] MASK 0.0.0.0 125.71.*.* **该条目注意,添加的是网段,缺省的是0.0.0.0,不是具体的地址,否则需要通配码。**
route -p add 192.168.0.0 MASK 255.255.0.0 172.16.0.1 **同样的,要写网段。因为不知道他的子网情况,所以用16位掩码全部给他匹配了所有的子网
另一种写法是:从route print上面看到的0xY这个接口IF(InterFace)也可以写为
route -p add 0.0.0.0 MASK 0.0.0.0 IF Y **Y=在route print看到的0xY后面的大Y**
输入后,问题搞定。。
最后补充一下change命令,如果你需要修改路由表,可以用这个命令:
route change 0.0.0.0 MASK 0.0.0.0 125.71.*.* **缺省网络所有的ip和子网掩码均为0。该命令修改默认网关的指向.
No comments:
Post a Comment