声明:本文与个人的技术兴趣毫无关系,只是因为有迫不得已的实际需求,才不得不想办法。问题解决了,那就做个笔记吧,万一有别的同学也有类似的需求呢。所谓"艰难困苦,玉汝于成",大概就是这个道理。(PS:标题我没有写错,不是双网双待,就是双网但不双待。所谓双网不双待,就是一个网卡只能访问外网,另一个网卡只能访问内网。)
1. 问题背景
我有一台电脑,电脑上有一个无线网卡,一个有线网卡。只有无线网卡才能访问互联网(外网),当然,也只有有限网卡才能访问私有网(内网)。
2. 两个需求
需求之一:让无线网卡自动连接,能够访问外网。
需求之二:将有线网卡连接到内网,但不要影响无线网卡上外网。
也就是说,无线网络连接的优先级必须高于有线网络连接的优先级。
3. 解决办法
无它,问度娘而已。网上的攻略大多是双网双待解决方案,就是让无线网卡和有线网卡同时都能让内网和外网。但是我遇到的问题比较特殊,无线网卡只能用来访问外网,有线网卡只能访问内网。要是能同时让无线网卡和有线网卡都能让内网和外网,本文完全没有写作的必要,因为我没得这样的需求,既然一个网卡就能访问内外网,根本不需要大费周折。
3.1 设置无线网络连接和有线网络连接的优先级
老实说,找到文章Win10怎么设置有线网络和WiFi网络优先级的时候我欣喜若狂,因为通常情况下有线网卡比无线网卡的优先级要高,这正是让我苦恼的地方。感谢脚本之家,提供如此贴心的文章。对于windows的跃点数我是不懂的(孤陋寡闻),原来所谓“跃点”,就是路由。一个路由为一个跃点。数据传输过程中需要经过多个网络,每个被经过的网络设备点(有能力路由的)叫做一个跃点,地址就是它的IP。跃点数是经过了多少个跃点的累加器,为了防止无用的数据包在网上流散。
既然通过修改跃点的数值就可以设置网卡的优先级,那就太好了。一旦电脑中存在着多个连接,某个连接的跃点数越小,那么它的优先级就越高。这有点类似Unix/Linux里的nice值,进程的nice值越小,被调度的优先级就越高(因为不那么nice)。
好了,接下来把无线网络连接的跃点数设置为10,有线网络连接的跃点数设置为20。
第1步:打开 控制面板\网络和 Internet\网络连接
第2步:选中WLAN,点右键,选属性;在WLAN属性中选中 Internet 协议版本4(TCP/IPv4)
第3步: 在Internet 协议版本4(TCP/IPv4)属性中,点高级
第4步:在高级TCP/IP设置中,取消自动跃点,将接口跃点数设为10。到此为止,无线网络连接的跃点数就设置好了。
第5步:类似地,将有线网络连接的接口跃点数设置为20。(注意:跃点数越高,优先级越低)
3.2 给有线网络连接加路由
第1步:找出有线网络连接DHCP之后的信息
注意:有线网络连接(只能访问内网)的默认网关为100.6.2.254
第2步:以管理员身份运行C:\Windows\System32\cmd.exe, 输入: route add 100.0.0.0 mask 255.0.0.0 100.6.2.254
到此为止,双网不双待的全部设置就完成了。最后上个图,既有内网的深不见底(其实是层层梯田),也有外网的波涛汹涌(当然还有暗流涌动)。