windows下如何调整网卡的顺序?

2020-08-07

windows

这个问题比较奇怪,其实我们来看一个场景就知道了,对于多网卡的机器,有时候我们确实需要指定获取到的ip的顺序。例如用charles抓包,charles会列出本地的ip列表,如果本地装了虚拟机或者WSL之类的,就会有问题。

![](https://www.zicode.com/wp-content/uploads/2020/08/image.png)
例如这样的,前面两个172网段的ip都是虚拟网段,一个是docker用的,一个是wsl用的,都是Hyper-V的虚拟网卡的ip,对外是不可访问的。而实际上,charles会优先监听在某个172的ip上,这样设备上的请求就过不来。我们可以做一个实验,把两个虚拟的网卡禁用掉,charles就工作正常了。下图中两个vEthernet适配器处于已启用状态,禁用即可。
![](https://www.zicode.com/wp-content/uploads/2020/08/image-1.png)
但是这不是合适的解决方案,因为虚拟网卡停用了,docker和wsl的网络都会停用。通过网络的搜索,发现可以通过修改网卡的跃点数来更改网卡使用的优先顺序。

跃点:即路由。一个路由为一个跃点。传输过程中需要经过多个网络,每个被经过的网络设备点(有能力路由的)叫做一个跃点,地址就是它的ip。跃点数是经过了多少个跃点的累加器,为了防止无用的数据包在网上流散。 为路由指定所需跃点数的整数值(范围是 1 ~ 9999),它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。

看起来不是很容易懂,不过没关系,知道跃点数越低优先级越高就好了。通常跃点数跟网卡速度也有一定的关系,比如100M的网卡通常跃点数可以配成10。我把有线网卡的跃点数设置成10,两个虚拟网卡的跃点数分别设置成20和30,这样就可以了。

![](https://www.zicode.com/wp-content/uploads/2020/08/image-2-1024x466.png)
 
阅读