解决两张网卡同时访问内外网问题

route 命令

Route
在本地 IP 路由表中显示和修改条目。使用不带参数的 route 可以显示帮助。

语法
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

参数
-f
清除所有不是主路由(网掩码为 255.255.255.255 的路由)、环回网络路由(目标为 127.0.0.0,网掩码为 255.255.255.0 的路由)或多播路由(目标为 224.0.0.0,网掩码为 240.0.0.0 的路由)的条目的路由表。如果它与命令之一(例如 add、change 或 delete)结合使用,表会在运行命令之前清除。

-p
与 add 命令共同使用时,指定路由被添加到注册表并在启动 TCP/IP 协议的时候初始化 IP 路由表。默认情况下,启动 TCP/IP 协议时不会保存添加的路由。与 print 命令一起使用时,则显示永久路由列表。所有其它的命令都忽略此参数。永久路由存储在注册表中的位置是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes。

Command
下表列出了有效的命令。
add 添加路由
change 更改现存路由
delete 删除路由
print 打印路由

Destination
指定路由的网络目标地址。目标地址可以是一个 IP 网络地址(其中网络地址的主机地址位设置为 0),对于主机路由是 IP 地址,对于默认路由是 0.0.0.0。

mask subnetmask
指定与网络目标地址相关联的网掩码(又称之为子网掩码)。子网掩码对于 IP 网络地址可以是一适当的子网掩码,对于主机路由是 255.255.255.255 ,对于默认路由是 0.0.0.0。如果忽略,则使用子网掩码 255.255.255.255。定义路由时由于目标地址和子网掩码之间的关系,目标地址不能比它对应的子网掩码更为详细。换句话说,如果子网掩码的一位是 0,则目标地址中的对应位就不能设置为 1。

Gateway
指定超过由网络目标和子网掩码定义的可达到的地址集的前一个或下一个跃点 IP 地址。对于本地连接的子网路由,网关地址是分配给连接子网接口的 IP 地址。对于要经过一个或多个路由器才可用到的远程路由,网关地址是一个分配给相邻路由器的、可直接达到的 IP 地址。

metric Metric
为路由指定所需跃点数的整数值(范围是 1 ~ 9999),它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。

if Interface
指定目标可以到达的接口的接口索引。使用 route print 命令可以显示接口及其对应接口索引的列表。
对于接口索引可以使用十进制或十六进制的值。对于十六进制值,要在十六进制数的前面加上 0x。忽略if 参数时,接口由网关地址确定。

/?
在命令提示符显示帮助。

注释

路由表中跃点数一列的值较大是由于允许 TCP/IP 根据每个 LAN 接口的 IP 地址、子网掩码和默认网关的配置自动确定路由表中路由的跃点数造成的。默认启动的自动确定接口跃点数确定了每个接口的速度,调整了每个接口的路由跃点数,因此最快接口所创建的路由具有最低的跃点数。要删除大跃点数,请在每个 LAN 连接的 TCP/IP 协议的高级属性中禁用自动确定接口跃点数。

如果在 systemroot\System32\Drivers\Etc 文件夹的本地网络文件中存在适当的条目,名称可以用于Destination。只要名称可以通过“域名系统” (DNS) 查询这样的标准主机名解析技术分解为 IP 地址,就可以将其用于 Gateway,DNS 查询使用存储在 systemroot\System32\Drivers\Etc 文件夹下的本地主机文件和 NetBIOS 名称解析。

如果是 print 或 delete 命令,可以忽略 Gateway 参数,使用通配符来表示目标和网关。Destination 的值可以是由星号 指定的通配符。如果指定目标含有一个星号 或问号 (?),它被看作是通配符,只打印或删除匹配的目标路由。星号代表任意一字符序列,问号代表任一字符。例如, 10.*.1, 192.168.*、 127.* 和 *224* 都是星号通配符的有效使用。

使用了无效的目标和子网掩码(网掩码)值的组合,会显示“Route:bad gateway address netmask”错误消息。目标中有一位或多位设置为 1,而其在子网掩码中的对应位设置为 0 时会发生这个错误。可以通过二进制表示法表示目标和子网掩码来检查这种情况。以二进制表示的子网掩码包括表示目标网络地址部分的一连串的 1 和表示目标主机地址部分的一连串的 0 两个部分。查看目标以确定目标的主机地址部分(由子网掩码所定义)是否有些位设置成了 1。

注:只有 Windows NT 4.0、Windows 2000、Windows Millennium Edition 和 Windows XP 的 route 命令支持 -p 参数。Windows 95 或 Windows 98 的 route 命令不支持该参数。

只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。

范例

要显示 IP 路由表的完整内容,请键入:
route print

要显示 IP 路由表中以 10. 开始的路由,请键入:
route print 10.*

要添加默认网关地址为 192.168.12.1 的默认路由,请键入:
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的永久路由,请键
入:
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1,跃点数为 7 的路
由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1,接口索引为 0x3
的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3

要删除目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由,请键入:
route delete 10.41.0.0 mask 255.255.0.0

要删除 IP 路由表中以 10. 开始的所有路由,请键入:
route delete 10.*

要将目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由的下一个跃点地址由 10.27.0.1 更改为
10.27.0.25,请键入:
route change 10.41.0.0 mask 255.255.0.0 10.27.0.25

相关解决方案

1.

有两个ip地址,一个只能上内网, 一个可以上外网。

由于内网和外网必须在物理上隔离,所以不能用一块网卡同时访问内网和外网。
内网和外网分别有自己的网关。
操作步骤:
首先是要准备两块网卡,分别连接内网和外网。我使用的操作系统是winxp,安装好两块网卡的驱动后,分别使用这两个网卡建立网络连接1和2。其中连接1上外网,2上内网。首先配置连接1的tcp/ip属性,填可以上外网的ip地址和外网网关,外网网关跃点数不要自动,改成1。如有需要可填写dns服务器地址。这样配置好的连接1可以直接访问外网。再配置连接2的tcp/ip属性,只要添上ip地址,不要填内网网关。关于网络连接的具体配置步骤不再赘述。
两块网卡都配置完毕以后,建立一个批处理文件。内容如下:
route add xxx.xxx.xxx.xxx mask 255.255.255.255 zzz.zzz.zzz.zzz metric 1
这个文件是用来指定内网上需要访问的特定网址采用的网关。xxx代表需要访问的内网ip,zzz代表内网网关ip。建议对每个需要访问的内网网址都建立一条相同
格式的命令,如果采用route add xxx.0.0.0 mask 255.0.0.0 zzz.zzz.zzz.zzzmetric 1 的方式,实际使用中会有一些网址不能访问。建立批处理文件后,打开
网络连接2,运行批处理文件就可以访问内网上的这些网址。
 
几点说明:
1、在xp下可以安装多块网卡,但是每个网卡必须有单独的ip地址。不能共用同一个ip地址,可以为每个网卡建立一个网络连接且可以同时都打开。但是只有最先打开的那个网络连接可以使用,因为xp默认的只有一个网关。后面的网络连接都会使用最先打开的这个连接的网关,从而导致无法使用。所以在添加网关的时候只能添加连接1的网关,连接2的网关要单独用命令指定。
 
2、route命令在xp的命令提示符状态下可以使用。route /?可以查看详细参数。
使用格式:route add [参数] 需要访问的ip地址 mask 掩码 网关 [参数]
add 后面的参数有-p,-f,-p是永久添加,关机重启后会继续起作用,没有-p需要每次使用的时候都重新指定。但是在使用中发现添加-p指定的ip地址有时不能访问,所以采用每次都运行批处理的方式。-f是清除路由表里面的网关。
网关后面一般加参数meteic 1,意思是指定跃点数是1,保证指定的访问地址和网关匹配,加快访问速度。不加metric参数亦会导致部分内网网址不能访问。
route print命令可以列出网关详细内容。
route delete xxx.xxx.xxx.xxx可以删除一条配置。
 
3、在使用中,一般常开的是外网连接,内网连接只在需要的时候打开,保证访问外网的速度以及网络的安全。因为内网和外网必须从物理上隔断才能保证安
全。如果对网络安全要求很高就不要采用了。

2.
我也曾遇到过这个问题,解决了好长时间没有解决,最后咨询思科的工程师,协助解决。
主要原因是: 2个网卡的优先级一致,导致上内网的时候,到不了外网,而上外网的时候,就进不了内网,因为计算机无法识别同样的默认网关。在设置IP的时候系统就会提示2个网卡一起使用,会使计算机网络不能正常使用。

解决办法就是设置不同的默认网关级别。
外网设置: 打开TCP/IP协议,高级,编辑默认网关的跃点数为10,默认为自动,值为20,用ROUTE PRINT查到的;设置自动跃点数为10。
这样的设置是把外网的优先级提高。内网优先级就比较底了。
用ROUTE PRINT 命令来查看: 未设置以前的值是有两个默认网关0.0.0.0,
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.198.66 192.168.198.101 20
0.0.0.0 0.0.0.0 10.172.2.2 10.172.2.222 20
因为两个默认网关的METRIC 值都是20。
修改后的值是:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.198.66 192.168.198.101 10
0.0.0.0 0.0.0.0 10.172.2.2 10.172.2.222 20
METRIC值越高,他的优先级别越低,这样2个默认网关就不会冲突了。
修改完这个以后:
有些时候可能进内网还不正常,你可以手工设置内网的默认网关路由。
如: 要进10.168.8.X,的内网由10.172.2.2这个网关进,通过命令来设置:
route add -p 10.168.8.X mask 255.255.255.0 10.172.2.2
命令解释:
10.168.8.X为目标网段或目标IP,设为目标网段时,X值为0,
255.255.255.0,为网关10.172.2.2的子网。
10.172.2.2,为这个目标IP的默认路由。
MASK的关键字不能少,-P为系统重启后保存设置,不用重新更改或重新增加这条路由。
有关ROUTE ADD/PRINT的相关资料大家可以在网上查查,它的使用办法。
这样问题就可以得以解决。
当然也可以用其它的办法来更改默认网关的值:
1。如ROUTE DELELTE 0.0.0.0,把2个默认网关都删掉,再新增。新增时注意设置METRIC这个值不能一样。
2。用ROUTE CHANGE 来变更两个默认网关的的外网网关的METRIC值。。
不过这2个方法比较的繁锁,也不容易操作。
 

最终解决方案

通过询问同学来解决的。新建一个BAT批处理文件,内容如下

rem start of the file

@echo off
set edu=10.5.20.1
rem 校园网网关的IP地址
set ADSL=192.168.1.1
rem ADSL路由猫的IP地址
route -f
rem 清除所有路由
route add -p 0.0.0.0 mask 0.0.0.0 %ADSL% Metric 10
route add -p 0.0.0.0 mask 0.0.0.0 %edu% Metric 20
rem 添加ADSL和校园网网关并优先使用ADSL
rem 下边代码使访问教育网网站通过校园网
route add -p 10.0.0.0 mask 255.0.0.0 %edu% Metric 20
route add -p 202.115.0.0 mask 255.255.0.0 %edu% Metric 20
rem end of the file

将两张网卡同时启用,都是自动获取IP,其他什么也不要设置,否则画蛇添足。

运行该批处理文件就OK。