前言

由于房间里面只有一条网线,路由器接不上网线导致我房间里没有wifi,于是买了一张网卡,痛苦就开始了

过程

刚到手,后板还有个坑,得先把主板拆开才能把挡板拿掉,于是我顺手把所有东西都拆了,还换了一个静音电源,比以前安静多了。装上网卡以后开始设置

一开始我以为简单的共享一下网络到网卡上,然后接路由器就可以了,然后我发现没网,也没有dhcp,于是我先下了一个windows的dhcp服务,后面怎么调发现都没有用。

两个小时过去了,还是没搞定,我就寻思着用hyper-V的虚拟机来尝试一下,用hyper-V虚拟机桥接或者共享网络,我发现还是一点用都没有

四个小时过去了,突然发现可以上网了,但是重启了以后又上不了网了,找了半天,终于发现问题所在。zerotier的路由转发规则覆盖掉了共享网络的路由转发规则,导致路由转发失效,我把zerotier网卡禁止了以后问题解决了,但是禁网卡不是一个长久之计,毕竟可以用操作解决为什么要禁网卡呢

于是我分析了一下zerotier的路由规则

route print

zerotier的路由规则在最开始,很明显的
0.0.0.0 mask 0.0.0.0 25.255.255.254 IF
于是我把这条删了

route delete 0.0.0.0

但是这样会删掉外网网卡的路由规则,导致不能上网

然后我再加回去

route add 0.0.0.0 mask 0.0.0.0 192.168.1.1

再加zerotier的静态路由

route add 172.23.0.0 mask 255.255.0.0 IF "xxxxx"

这里xxxx是route print命令出来的网卡代码,可以自己看一下

然后我写了一个bat文件放在了开机启动的地方

因为bat文件需要管理员命令执行,我上网搜了一下bat自动获取管理员权限的代码

总结起来如下

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
cd /d "%~dp0"
TIMEOUT /T 30
route delete 0.0.0.0 mask 0.0.0.0 25.255.255.254 
route add 172.23.0.0 mask 255.255.0.0 24.255.255.254 IF "7a fa a4 d8 c7 9c" metric 9999

这里delete 0.0.0.0 改良了一下,这样就只会删掉zerotier的路由规则而不会删掉原网卡默认规则

完工,痛苦了一晚上呜呜