auto-add-routes
auto-add-routes copied to clipboard
写入路由表后短时间内高CPU与磁盘占用
操作系统win10 22h2,wireguard连接
此时wireguard已经startup complete,分流生效。但不知道为什么系统进程仍会有大约2分钟的时间占用CPU和硬盘,再之后一切正常
以下是用process monitor截的从按下连接到停止占用的log
链接
我出现了相同问题
不论是使用tunsafe还是wg客户端都会这样
是的,载入路由表时有两个服务进程会大量占用CPU,一个约1分钟,另一个约2分钟,这是Windows路由表管理机制的缺点,目前还找不到特别有效的解决方法,我想了一个变通方法,在自己的机子上测试成功:
找一个节点文件复制两份,分别命名为“01-Routes-UP”(负责载入路由表)、“02-Routes-Down”(负责删除路由表),然后在插入这4行命令的时候:
PreUp = "C:\Program Files\WireGuard\bat\routes-up.bat" PostUp = "C:\Program Files\WireGuard\bat\dns-up.bat" PreDown = "C:\Program Files\WireGuard\bat\routes-down.bat" PostDown = "C:\Program Files\WireGuard\bat\dns-down.bat"
“01-Routes-UP”去掉第三行,即只插入:
PreUp = "C:\Program Files\WireGuard\bat\routes-up.bat" PostUp = "C:\Program Files\WireGuard\bat\dns-up.bat" PostDown = "C:\Program Files\WireGuard\bat\dns-down.bat"
“02-Routes-Down”去掉第一行,即只插入:
PostUp = "C:\Program Files\WireGuard\bat\dns-up.bat" PreDown = "C:\Program Files\WireGuard\bat\routes-down.bat" PostDown = "C:\Program Files\WireGuard\bat\dns-down.bat"
首次使用WireGuard,先打开这个“01-Routes-UP”节点,会自动载入路由表(大约2分钟)。
如果需要使用其它节点,在断开这个节点后,路由表仍保留在系统中,其它节点在插入上述4行命令时不要插入第1、3行,即只插入:
PostUp = "C:\Program Files\WireGuard\bat\dns-up.bat" PostDown = "C:\Program Files\WireGuard\bat\dns-down.bat"
这样,“01-Routes-UP”断开后,再打开其它节点,就不会再次载入路由表而长时间占用CPU,而分流功能正常。
当不再需要使用WireGuard时,打开“02-Routes-Down”节点,然后再断开,这样就能删除“01-Routes-UP”载入的路由表了。