二,从本地路由下手:实现双网卡带宽有效合并
网上有一些工具是将多个网卡合并到一起使用,不过笔者之前也尝试过效果都不太好,因为任何的软件合并都不够智能,经常造成两个网卡传输冲突,从而适得其反影响实际传输速度。今天笔者要介绍的办法则是通过从本地路由下手来突破网络速度极限。
众所周知对于多网卡的计算机来说我们可以把他看成是一台路由器,代理服务器就是利用这种路由数据原理工作的。路由器中都存在着名为路由表的数据条目,通过路由表中的信息来转发数据。当计算机有多个网卡时我们是否可以通过设置路由表来转发数据呢?将一部分数据发送到网卡1而另外一部分数据转发到网络2传输出去呢?答案是肯定的,我们可以像设置路由那样针对计算机操作系统添加路由条目。
在Windows系统中我们通过route print命令来查看路由表,这个路由表是本地系统的;通过route add命令添加一条路由表条目,通过route delete删除路由条目。
既然我们可以通过命令来添加路由表和条目信息,那么如何来填写路由条目呢?在route add命令中我们需要知道转发网络IP段以及对应的子网掩码,同时还需要知道路由下一跳地址。笔者以企业实际应用为例进行介绍。
当企业计算机上有多个网卡时我们可以通过ipconfig来查看各个网卡的地址信息,例如网卡1是192.168.1.120,网卡1的网关是192.168.1.1;网卡2是116.245.96.246,由于是PPPOE拨号所以网关也是116.245.96.246。(如图1)
接下来我们就要确定数据缺省从哪个网卡走,这里假设缺省数据从网卡2走,那么当我们在命令提示窗口中输入route print时将能够在最下面看到default gateway的字样,这个就是缺省网关,从图中可以看到当前系统的缺省网关是网卡2的地址116.245.96.246,而不是网卡1的网关192.168.1.1。(如图2)
如果发现在route print里显示的default gateway默认网关地址不是我们所希望的缺省网卡该如何更改呢?例如上例中默认网关是网卡1的网关192.168.1.1。那么我们可以通过两个方法解决,首先禁用网卡1,然后重新启动计算机,再通过route print查看缺省网卡,由于系统只有网卡2处于启用状态,所以缺省网卡也自然变成了网卡2的网卡,最后再启用网卡1即可。如果这个方法不管用我们就需要编辑注册表中与本地连接有关的键值了,通过修改键值将网卡2的键值更改排列到网卡1的前面,从而解决了缺省网卡的问题。具体键值为[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\,由于篇幅关系这里就不详细说明了,一般来说大部分情况按照第一个办法可以解决。
确保默认网卡是自己认同的数据默认通讯地址后我们就要根据实际来添加路由表了,这里假设我们要访问58.129.0.0这个地址段,不过为了提高速度让他们不从默认网关(网卡2)通讯而是从网卡1走,那么我们就需要添加一条这样的指令)route add 58.129.0.0 mask 255.255.0.0 192.168.1.1。(如图3)
首先route add后面跟的是网段,包括网络号和子网掩码,另外最后还需要写上下一跳地址,一般就是网卡1的网关地址,例如本例中的192.168.1.1。
添加完路由表条目后我们通过route print命令可以看到58.129.0.0对应的路由信息出现在路由表中,下一跳地址是192.168.1.1。(如图4)
小提示:
下一跳地址是数据转发到的地址,必须填写网卡1的网关地址,不是网卡1的IP地址,否则路由条目将无法正常工作,网络访问58.129.0.0这个网段将出现死循环,通讯数据连接超时。
当然除了route add命令是添加路由条目外,如果我们书写错误的话还可以通过route delete命令删除条目,记得书写时要写全才能让删除命令生效,当然route命令还有很多额外参数,例如metric这类跳跃数设置等,在本例中用的不多,因为我们的路由都只是一跳而已,所以可以不填写,当然感兴趣的读者想知道具体命令可以通过/?来查询。