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 我自行总结出

  1. UDPspeeder 会在发包时会多发包以此保障丢包不影响正常的连接
  2. udp2raw 将 UDP 伪装成 TCP 包 保证包不被运营商的奇特策略丢弃
  3. $$或$$R 的流量经过加密后依然为原数据包的协议
  4. UDP 和 TCP 的端口号没关联

上面只是概括 更多详情请自行查阅项目地址与学习计算机网络的知识

拓拔图

1
2
3
4
5
                                       TCP↓
|-------------tinyPortMapper-------------|
SSTap--raspberrypi--| |--$$ Server
|--UDPspeeder client--UDPspeeder server--|
UDP↑

如果需要串联 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

先上传 UDPspeedertinyPortMapper 的二进制文件的 对应 版本到树莓派 然后执行

1
2
./speederv2 -c -l 0.0.0.0:800 -r 45.66.77.88:2333   -k "passwd" --mode 0 -f2:4 -q1
./tinymapper -l 0.0.0.0:800 -r 45.66.77.88:443 -t #将 TCP:800 转发到 45.66.77.88:443

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
2
./tinymapper.exe -l 0.0.0.0:100 -r 服务器 IP:$$端口 -t
./udp2raw_mp.exe -c -l 0.0.0.0:100 -r 服务器 IP:udp2raw 端口 -k 密码 --raw-mode easy-faketcp

更多配置请看 wiki

效果如图(只配置了 tinyPortMapper 与 udp2raw)
PE2Z59.webp

配置 SSTap

添加一个$$代理

IP 设置为运行着客户端机器的 IP 端口为自行设置的端口

密码 协议等 与$$服务的一样

如果配置得当 就会得到这样的结果

vTejH.webp

然后选择游戏 连接 就行了

后记

这里只简单阐述了配置的过程

关于 SSTap 因为灵活性与可扩展都比较比较强 所以个人推荐使用 SSTap

关于服务器的地区 由于一般外服游戏在* HK *都有服务器 所以 VPS 所在地当然推荐 HK

关于系统 服务端:Linux 客户端:*Linux/Windwos/Mac *都可以

关于参数 需要根据 VPS 的带宽 当前到 VPS 延迟与丢包进行自己的实验

你还需要拥有用来跑客户端软件的 Linux 系统的主机 我这里是树莓派 Linux 路由器当然也可以

针对我校的网络好像会突然 QoS 的现象 所以推荐配合 udp2raw 使用

可以在 Github 的 Issue 上找到很多有趣的东西 XD

EOF