Windows以及Linux下双网卡内外网同时使用、设置域名解析优先级的方法 - newflypig

时间:2024-02-18 18:51:08

Windows以及Linux下双网卡内外网同时使用、设置域名解析优先级的方法

现在的企业网络环境比较复杂,大多都会有内外网之分,上网需要来回切换。现在分别介绍一下在Windows和Linux下如何通过双网卡使内外网同时使用。
首先你需要准备内外网的IP地址和各自的网关,以及配套的DNS。当然,即使不同时使用内外网,这些信息也是必须的。就拿我工作的环境为例,内网是无线路由器,DHCP自动分配,无线路由器的网关是默认的192.168.1.1,外网IP地址是61.132.XXX.157,网关是61.132.XXX.134(为保护隐私,XXX代表了1-255的一个整数),DNS我们可以选择google为我们提供的8.8.8.8,经过测试这个DNS还是相当好用的。
同时接上外网网线,开启WIFI,将你的内外网的IP分别填入两个网卡中去,这时候两个网卡的硬件同时工作了,但是你的电脑可能既不能上外网也不能上内网,也有可能只能上一个网。原因就是计算机根本不知道你在浏览器中输入的地址到底需要他通过哪个网卡去访问。
解决办法:
以一台Windows的主机为例,打开CMD终端,键入route printf先大概了解一下当前的路由表
路由表
route print首先会打印一组接口列表,这里需要你认证看一下,记下分别代表你两个网卡的数字序号,比如我的内网也就是无线网卡(Intel(R) WiFi Link 1000 BGN)的序号是13,外网也就是有线网卡(Realtek PCIe GBE Family Controller)的序号是11,心里跟我默念两句,内网13外网11,内网13外网11。OK,继续往下看,终端接下来打印的是IPV4和IPV6路由表,当前我们只关心IPV4的,路由表由网络目标,掩码,网关,接口,跃点数组成。这些术语您需要在百度上做一个大概的了解,本文就不赘述了。目标为0.0.0.0代表的是所有网络,指向这个网段的必须经由外网网段,我们公司所有内网系统和主机的IP都以132开头。于是,我们只要让计算机知道,所有IP以132开头的目标主机,请帮我从我的内网网卡访问,所有不是以132开头的目标主机,请帮我从外网网卡访问。
OK,我们的目的了解了,下面就是命令了,在Windows下(Vista以上版本需要以管理员身份运行CMD终端才可以执行路由命令),我们可以这样输入

route delete 0.0.0.0
route delete 132.0.0.0
route -p add 132.0.0.0 mask 255.0.0.0 192.168.1.1 if 13 metric 1
route -p add 0.0.0.0 mask 0.0.0.0 61.132.XXX.134 if 11 metric 2


简单讲解一下上面的命令,首先两个delete是删除已存在的路由信息。后面两个命令,第一个为指向132网段的目标添加了一条路由命令,(-p代表的是让计算机永久记录这条路由信息,关机重启后仍然有效)让其通过我们的无线路由器的网关去访问,并且定义了它的物理接口序号(刚刚跟我默念的"内网13外网11",这里在if后面写上13,顺便说一句,这里的if是interface,接口的意思,不是条件判断的意思),metric 1定义了这条路由的跃点数,跃点数越小,优先级越高,我们首先需要保证内网的访问,所以定义其为1。下面一句定义外网网段的路由就显得很简单了,网关指向的是我们之前所说的外网网关,优先级降一个等级。
大功告成,在浏览器输入内外网的地址,应该都可以访问了。如果这时候你输入内网的IP地址能够正常访问,而输入内网的域名却解析到外网上去(有些公司的内部应用系统是做好路由的,并不是直接用IP指向),这时候你需要在控制面板打开网络连接,在XP下会直接显示"高级"菜单,在Vista以上的版本需要按一下Alt才会出现高级菜单,点击"高级设置",在列表中将内网网卡的位置调到最上面即可。
域名解析时的网卡优先级
下面顺便说一下Linux的命令,在Linux下,查看路由表的命令是route -n打印路由表。执行路由命令时请使用管理员身份执行,命令如下:

route add -net 132.0.0.0 mask 255.0.0.0 gw 192.168.1.1
route add -net 0.0.0.0 mask 0.0.0.0 gw 61.132.XXX.134


Linux下的路由表