双网卡同时上内外网

转自:

http://wanyij.blog.51cto.com/46570/139377

 

为了方便自己在一台机器上同时访问内网和外网,自己对系统路由作了一点点更改,既方便了自己,又学习到了相关的路由知识。
  
   网络环境(我办公室真实的网络环境):
  1、一台主机;
  2、两张网卡;
  3、外网通过SOHO路由器上ADSL,网关为192.168.0.1,本机外网IP为192.168.0.101;
  4、内网全网网络地址为10.0.0.0 掩码为255.0.0.0 ,我所在区域的子网络为10.*.*.0,网关为:10.*.*.*,本机IP为10.*.*.* 。
 
   要解决的问题:
  两张网卡要同时开启,并且能够同事上内、外网。
 
  解决的过程:
  1、重命名两张网卡,以区别内外网。如果两张网卡是相同的,那一定要记下为其分配的IP地址及相对应的物理地址,以方便之后的设置。
  2、设置好IP地址后,两张网卡同时打开,打开的先后顺序不同也会出现不同的情况,主要 Default Gateway(默认路由)如果是外网的,那么可以上外网,也可以上内网,但是内网只能上10.*.*.0网络号段上的WEB,其它区域的上不了。在命令行输入:route print 查看当前的路由表
 
  3、为了在可以访问外网的前提下,也可以访问所有的内网区域,因此系统默认为我们的路由是不行的,要自己重新设置一下。通过刚查看的路由表可以看见里面有一项叫  Interface List(接口列表)东西,第一行不用管他,看后面几行,这里你可以通过设备类型或者物理地址来确认哪是内网卡,哪个是外网卡。如上图,0xe0002  是外网卡,0xf0003  是内网卡。下面就开始更改路由设置了。
   (1)基本命令:
  route -f      //删除默认路由;
  route add 目的网络号 mask 目的网络的子网掩码 本地网关 metric 20 if 网卡标识符
  (2)设置:
   route -f
   route add 10.0.0.0 mask 255.0.0.0 10.*.*.* metric 20 if  0xf0003  //先设置内网路由
   route add 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 20 if oxe002  //再设置外网路由;
 
  设置成功后,可以通过 route print 查看修改后的路由
  这样就可以稳定、而且不受任何限制的访问内网和外网了!如果要取消当前的设置,只需要将两个网卡分别停用再开启就变成系统默认设置了。
 
  希望这篇小技巧对大家有用!
 
 
********************************
以下是自己遇到的问题以及解决方法
********************************
内网用的网线,外网为无线网,连接一段时间后发现不能连接外网了。
route print后发现,路由表里有两个默认路由
一个是
0.0.0.0 mask 0.0.0.0 内网网关
一个是
0.0.0.0 mask 0.0.0.0 外网网关
其中外网的是自己配的,内网是路由学习到的。
因为内网的metric比外网的小,造成联网数据包默认转到了内网路由器上,而无法上网。
听取同事建议,解决方案如下:
1. 修改内网路由器,将自己的ip设置为静态ip,映射到自己机器的mac上;
2. 修改内网ipv4,取消动态获取,只填写ip和掩码,空下网关和DNS配置。
 
附录:本人写的脚本:
 1 @echo off
 2 route delete 0.0.0.0
 3 route delete 52.1.0.0
 4 route delete 10.161.0.0
 5 for /f "delims=. tokens=1,3" %%a in ('route print') do if "%%b"=="Broadcom 802" route -p add 0.0.0.0 mask 0.0.0.0 192.168.2.1 metric 1 if %%a
 6 
 7 for /f "delims=. tokens=1,3" %%a in ('route print') do if "%%b"=="Realtek PCIe GBE Family Controller" route -p add 52.1.0.0 mask 255.255.0.0 192.168.1.1 metric 1 if %%a 
 8 
 9 for /f "delims=. tokens=1,3" %%a in ('route print') do if "%%b"=="Realtek PCIe GBE Family Controller"  route -p add 10.161.0.0 mask 255.255.0.0 192.168.1.1 metric 1 if %%a 
10 
11 route print

其中“Broadcom 802” 代表无线网卡,“Realtek PCIe GBE Family Controller”代表有线网卡

for /f "delims=. tokens=1,3" %%a in ('route print') do if "%%b"=="Broadcom 802"
用来获取无线网卡的网卡标志符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值