外网串流电脑加速器实现方案
说明
由于需要优化调整,并且涉及到的软件较多,该方案需要一定linux相关知识储备与一定折腾能力,如果有问题可以在公众后后台留言。
前提条件
- 家用宽带公网ip(最重要的东西,一般电信宽带容易申请)
- 如果没有公网ip,但是有nat1类型的网络,也可以尝试一下这个开源项目,博主目前还没尝试过:https://github.com/heiher/natmap/wiki
- ipv6 应该也可以,这个条件比较简单,具体博主没有尝试(主要原因是博主公司网络没有ipv6),可以自己折腾
- 内网下需要有一台中转服务器
- 博主这里用的 ubuntu18.04 系统,是在需要远程的机子中使用 hyper-y 虚拟化出来的
- (不一定)一个可以刷机的路由器
- 博主原先用的红米ax6s不知道是什么原因,导致服务不能连接,后面换了一个斐讯k2p刷潘多拉之后解决了
使用软件
- UDPspeeder:https://github.com/wangyu-/UDPspeeder 加速器本体,通过多倍发包来提高网络的命中率,降低丢包率,稳定网络
- udp2raw:https://github.com/wangyu-/udp2raw 将udp协议进行伪装,在qos或者运营商会限制udp协议
- wg-easy:https://github.com/wg-easy/wg-easy 封装好的wireguard服务端,用网页去配置,会简单很多。(这里使用docker部署)
- wireguard客户端:https://www.wireguard.com/ 用于连接wireguard。
- Sunshine:https://github.com/LizardByte/Sunshine 由于博主电脑是a卡,所以用的sunshine,也可以直接用moonlight,请自行判断。
上述软件中,wireguard可以自行更换为其他使用udp协议的vpn,sunshine也可以换成parsec之类的软件。
开始部署
整套加速器的系统,其实目的降低外网到局域网内的丢包率,提高远程连接的稳定性,所以这个教程会有一些网络与路由器相关的配置。
另外,正如上诉所说,该系统适用于提高稳定性,对于延迟并不会降低,甚至会有些许提升。
部署内网服务器
首先需要在内网中部署一个服务器并且按如下顺序 wg-easy -> UDPspeeder -> udp2raw 部署各个软件,用于外网到内网的中转,ubuntu系统请自行查找网上的资料进行安装部署,并且安装的ubuntu系统需要带有docker。
1. 安装wg-easy
参考教程:https://www.bilibili.com/video/BV1uT411w7Tq
可以略过前面的教程,直接使用最后对应的docker命令来快速搭建wg-easy服务器,搭建好之后的页面如下:
点右上角的 New 按钮,输入名称后即可快速创建一个配置文件,将其下载下来,电脑中安装上述软件列表说的 wireguard 客户端,点击左下角的新建隧道,选择刚刚下载的配置文件,然后选中对应的配置,点击连接,连接成功的情况如下:
在流量一行中接收有值就算成功连接上了。
2. 启动udp2raw
从上述软件列表中下载udp2raw,将其传输到内网服务器中,使用以下命令来启动udp2raw:
1 |
|
其中将password
修改为自己的密码,该命令监听了服务器的8855端口,并将处理后的数据包转发到了服务器的7775端口。
3. 启动UDPspeeder
从上述软件列表中安装UDPspeeder,将其传输到内网服务器中,使用以下命令来启动udp2raw:
1 |
|
该命令监听了服务器的7775端口,也就是接收了上述udp2raw的流量包,经过处理后转发到了服务器的51820端口,正常来说该端口是上述docker安装wg-easy时指定的监听端口,如果有修改请自行改动。
此处--mode 1
参数是为了降低加速器增加的延迟,也可将其设置为--mode 0
,如果设置了这一步,后续就无需考虑mtu的问题,但是会增加些许延迟,具体可以参考UDPspeeder(ps:mode 1 也会增加些许流量)。
另外-f6:3
是博主自行尝试出来的较为适合远程串流的参数,如果有卡顿,请参照UDPspeeder中的wiki自行调整。
配置端口转发
上述步骤完成后,就能得到一个 udp2raw->UDPspeeder->wg-easy
这样的串联架构,放出的端口为8855端口,接下来需要配置路由器,使其将外网的8855端口映射到服务器的8855端口。
对于路由器操作,不同的路由器不太一样,博主此处为路由桥接光猫拨号,所以直接在路由器设置界面进行端口转发即可,如下图所示:
注意需要将tpc协议和udp协议都放出到外网,不然不work。
你也可以直接将dmz主机设置为内网服务器的ip。
终端设备安装加速器
接下来只需要在终端设备上搭建一个与上述相反的串流价格,然后去连接上述放出的外网ip端口就能实现整个线路的加,同样的,我们需要在终端设备上分别安装udp2raw、UDPspeeder和wireguard。
此处假设终端设备为 windows10 操作系统(如果你是安卓,前提是需要root,你可以使用termux在终端中启用)。
启动udp2raw
要在windows系统上使用udp2raw,首先需要安装npcap,自行百度下载最新版本然后按默认设置安装即可。
将udp2raw的windows可执行文件下载到本地,然后在同目录下新建一个u2rStart.bat文件,命令如下:
1 |
|
将其中的123.123.123.123
修改为你自己宽带的外网ip,password
与上述需要相同,其他不变。
双击u2rStart.bat启动udp2raw。
启动UDPspeeder
将speeder的windows可执行文件下载到本地,然后同目录下新增一个speederStart.bat文件,命令如下:
1 |
|
双击speederStart.bat启动UDPspeeder。
该命令监听了本机的3333端口,并将进入该端口的udp数据包通过上述的加速器进行传输。
启动wierguard
在wg-easy的网页页面中新增一个节点,用于终端连接,将其下载到终端设备中,导入到wireguard中,修改其中的配置如下:
添加了MTU=1300,如果上述UDPspeeder中填写的mode为0,则无需添加MTU。
将Endpoint修改为了127.0.0.1:3333,表示将wireguard连接的端口改为上述终端中UDPspeeder放出的端口。
点击连接查看是否有流量,如果有流量,则表示加速器搭建成功了,接下来就可以进行远程了。
串联测试
如果你用的是parsec,只需要在内网被控机器与终端机器上都安装parsec并且登录,就直接能够走加速器连接了。
如果你用是moonlight,需要手动新增一个地址为你内网被控机器上wireguard的ip地址。
不管你用的串流软件是什么,请将自行调整码率到5-15之间,这样的串流效果最佳。