声明:本文与个人的技术兴趣毫无关系,只是因为有迫不得已的实际需求,才不得不想办法。所谓"艰难困苦,玉汝于成",大概就是这个道理。(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
到此为止,双网不双待的全部设置就完成了。最后上个图,既有内网的深不见底(其实是层层梯田),也有外网的波涛汹涌(当然还有暗流涌动)。
小结: 整个攻略归结起来其实就两条,第一: 通过设置跃点数保证无线网络连接拥有较高的优先权;第二:给有线网络连接添加路由。