WireGuard实现网络分流
前言
在使用 nekoray 这一款软件后,虽然使用起来很好,但在电脑上使用久了后,感觉流量速度不快,就找到了一个解决方案,这里就记录下如何使用 wireguard 实现网络分流,由于教程非常的简单,这里只用于记录,电脑用wireguard,手机端用nekoray。
安装 wireguard
1 | sudo apt install wireguard |
安装 wireguard
wireguard下载:【点击前往】
文件说明:
add.txt和del.txt为写入和删除时使用的路由表;
routes-up.bat和routes-down.bat为Wireguard在连接前和断开后调用的写入/删除路由表的批处理文件。通过Wireguard的Pre/Post命令调用。
client_pre.bat和client_down.bat为Openvpn在连接前和断开后调用的写入/删除路由表的批处理文件。Openvpn连接时会自动调用。
cmroute.dll会被上述批处理文件调用,作用是秒载/秒删路由表。即使有数千条路由表也能秒载入,秒删除。
分流原理
目前项目采用的分流方式主要是:
路由表分流。通过将国内/大陆IP与默认网卡进行绑定,让国内的IP都走默认网卡(你的默认网络)。其余国外IP走虚拟网卡(你的代理网络)
DNS分流。通过配置overture,将国内/大陆IP和一些常用的国内域名与国内的DNS进行绑定,其余国外IP与国外DNS绑定,进一步加强分流的准确性。因为某些国内的网站或服务会部署海外CDN,当使用海外的DNS解析这些域名时,将会得到海外CDN的IP地址,此时虽然访问的是国内的网站或服务,但由于解析得到的是一个海外IP,因此流量仍会经过代理。
项目初衷
最开始研究代理分流的目的只是为了用Openvpn加速游戏时可以节省更多的流量。之后或许会分享这个项目与其他游戏加速软件搭配使用的方法和技巧。
使用方法
下载并安装最新版本的官方PC客户端。一般会安装在目录”C:\Program Files\WireGuard”
开启Wireguard的Pre/Post命令支持,只能通过修改注册表的方式开启,具体操作:
- 以管理员身份运行cmd
- 输入以下命令按回车
1
reg add HKLM\Software\WireGuard /v DangerousScriptExecution /t REG_DWORD /d 1 /f
修改Wireguard客户端配置文件,加入以下Script Hook调用”C:\Program Files\WireGuard\bat”的批处理文件
1
2
3
4PreUp = "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"将DNS指向本机以使用Overture作为DNS服务器
1
DNS = 127.0.0.1
关闭Wireguard的kill switch并保存修改
如配置正确,此时点击连接Wireguard会⑴自动调用routes-up.bat将国内IP写进系统路由表,⑵启动overture DNS服务器
连接成功后可上ip.skk.moe测试一下看是否正确分流。