UDPSpeeder 等配合 SSTap 进行网游加速
First Thing First
Today is Christmas
So Merry Christmas
前记
此方案适合已搭建$$或者$$R 的 因为此文中配合的 SSTap
写这文的动机是因为作者的教程里面没有提到配合$$使用 所以本文针对这个来进行
下面这几个放出项目地址的都是 wangyu- 开发的
项目地址
udp2raw
UDPspeeder
tinyPortMapper
udp2raw-multiplatform
知识
Q: 为什么游戏要用 UDP
A: 网络游戏 采用的是 tcp 协议还是 udp 协议? - fei zhang 的回答 - 知乎
通过阅读 Github 我自行总结出
- UDPspeeder 会在发包时会多发包以此保障丢包不影响正常的连接
- udp2raw 将 UDP 伪装成 TCP 包 保证包不被运营商的奇特策略丢弃
- $$或$$R 的流量经过加密后依然为原数据包的协议
- UDP 和 TCP 的端口号没关联
上面只是概括 更多详情请自行查阅项目地址与学习计算机网络的知识
拓拔图
1 | TCP↓ |
如果需要串联 udp2raw 用这个图脑补 UDP 链路
1 | --UDPspeeder client--udp2raw client--udp2raw server--UDPspeeder server-- |
也就是把 UDPspeeder server 的出口用 udp2raw server 包装起来
同样的用 udp2raw client 解包并把解包后的包转给 UDPspeeder client
也可以直接点进这里 UDPspeeder 和 udp2raw 串联加速 OpenVPN
为了方便 就不演示怎么搭配 udp2raw 有问题的可以在评论区里问
如果看不到评论区 请检查梯子
服务端
假设$$服务在监听 443 端口 VPS 地址为 45.66.77.88
UDPspeeder 监听端口为 2333 参数使用游戏模式的 推荐设置
更多参数请点 这里
先上传 UDPspeeder 的二进制文件的 对应 版本到 VPS 然后执行
1 | ./speederv2 -s -l 0.0.0.0:2333 -r 127.0.0.1:443 -k "passwd" --mode 0 -f2:4 -q1 |
VPS 上就这样了
Linux 客户端
这里可以自定义监听端口 假设为 800
先上传 UDPspeeder 和 tinyPortMapper 的二进制文件的 对应 版本到树莓派 然后执行
1 | ./speederv2 -c -l 0.0.0.0:800 -r 45.66.77.88:2333 -k "passwd" --mode 0 -f2:4 -q1 |
UDPspeeder 的参数 server 和 client 需要一致
如果会使用 iptables 等 可以不使用 tinymapper
Windows 客户端
于 2018/07/03 更新
新 repo 叫 udp2raw-multiplatform 即 udp2raw 的多平台版 而 tinyPortMapper 和 udpspeeder 都在原 repo 上更新了
根据 快速入门 我们知道服务端可以沿用 Linux 版 所以我们这里只对客户端部分进行延伸
首先要安装 pcap 下载安装一路简单 不说
从 udp2raw-multiplatform/tinyPortMapper/UDPspeeder 处获取对应的 Windows 客户端并解压到一定位置
打开 CMD/PowerShell/Cmder 之类的终端软件 进入到客户端解压的位置
分别于不同的终端中执行
1 | ./tinymapper.exe -l 0.0.0.0:100 -r 服务器 IP:$$端口 -t |
更多配置请看 wiki
效果如图(只配置了 tinyPortMapper 与 udp2raw)
配置 SSTap
添加一个$$代理
IP 设置为运行着客户端机器的 IP 端口为自行设置的端口
密码 协议等 与$$服务的一样
如果配置得当 就会得到这样的结果
然后选择游戏 连接 就行了
后记
这里只简单阐述了配置的过程
关于 SSTap 因为灵活性与可扩展都比较比较强 所以个人推荐使用 SSTap
关于服务器的地区 由于一般外服游戏在* HK *都有服务器 所以 VPS 所在地当然推荐 HK
关于系统 服务端:Linux 客户端:*Linux/Windwos/Mac *都可以
关于参数 需要根据 VPS 的带宽 当前到 VPS 延迟与丢包进行自己的实验
你还需要拥有用来跑客户端软件的 Linux 系统的主机 我这里是树莓派 Linux 路由器当然也可以
针对我校的网络好像会突然 QoS 的现象 所以推荐配合 udp2raw 使用
可以在 Github 的 Issue 上找到很多有趣的东西 XD
EOF