[游戏加速方案] sstap-ss-kcptun-udpspeeder-udp2raw

2019-05-23 10:46:25 +08:00
 eastlhu

这两个方案都是为了游戏加速( pubg ),有一个 hk 的 vps,10ms 的延迟,普通电信线路几乎不丢包,方案 1 不能成功连接,方案 2 可以正常连接。麻烦大家帮忙看下方案 1 哪里有问题,两个方案如下:
注:两个方案中,xx.xx.xx.xx 表示 vps 的 ip 地址

方案 1:sstap-ss-kcptun-udpspeeder-udp2raw

请问我这个配置有问题吗?
客户端:

tinymapper_wepoll.exe -l0.0.0.0:8089 -r127.0.0.1:5001 -u
speederv2.exe -c -l0.0.0.0:5001 -r127.0.0.1:6001 -f2:4 -k "pwd" --mode 0 --timeout 1
udp2raw_mp_nolibnet.exe -c -l0.0.0.0:6001 -rxx.xx.xx.xx:554 -k "pwd" --raw-mode easy-faketcp  

本地 ss 的服务器地址是 127.0.0.1:8089
本地 kcptun 的服务器地址是 127.0.0.1:5001,监听端口是 8089
kcptun 的参数大概是如此

{
    "listen":"0.0.0.0:9001",
    "target":"xx.xx.xx.xx:9090",
    "key":"password",
    "crypt":"aes-128",
    "conn":1,
    "sndwnd":8192,
    "rcvwnd":8192,
    "mtu":1350,
    "mode":"manual",
    "nocomp":true,
    "datashard":0,
    "parityshard":0,
    "dscp":46,
    "acknodelay":false,
    "nodelay":0,
    "resend":0,
    "nc":1,
    "interval":20,
    "autoexpire":60,
    "sockbuf":4194304,
    "keepalive":10
}

服务端:

sudo ./udp2raw_amd64 -s -l0.0.0.0:554 -r127.0.0.1:9000 -a -k "pwd" --raw-mode faketcp
sudo ./speederv2_amd64 -s -l0.0.0.0:9000 -r127.0.0.1:9001 -f2:4 -k "pwd" --mode 0 -q1

服务端 kcptun 的 listen 端口是 9001,原来如果只用 ss+kcptun 是能正常上网的。

整体思路是: 客户端通过 tinymapper 转发 ss 的 udp 流量到 speederv2 客户端通过 kcptun 将 tcp 流量转换为 udp 流量,再通过 kcptun 转发流量(tcp->udp)udp 流量到 speederv2 (加速)。
现在出现的问题是,sstap 测试,tcp 转发成功,udp 失败,在服务器的 kcptun 日志里面,看到

2019/05/21 09:25:22 stream opened 3
2019/05/21 09:25:49 stream closed 3
2019/05/21 09:25:50 io: read/write on closed pipe

猜测是连接被马上关闭了。请问我哪里有问题?
另外看到 udpspeeder 运行起来,控制台有一串参数如下:

jitter_min=0 jitter_max=0 output_interval_min=0 output_interval_max=0 fec_timeout=8 fec_mtu=1250 fec_queue_len=1 fec_mode=0

fec_mtu=1250,跟我 kcptun 中设置的 mtu=1350 不一致,是否这个会有影响?


方案 2:sstap-ss-udpspeeder-udp2raw 方案

如果我去掉 kcptun 这一层,是可以实现的。
本地 ss 服务器地址填 127.0.0.1:8089,监听端口 1080,其他参数和服务端 ss 一致 本地 sstap 增加 socks5 代理,地址填 127.0.0.1:1080,其他参数不用填

客户端:

将本地 ss 的 tcp 流量转发到远端服务器上的 ss 端口 9090
tinymapper_wepoll.exe -l0.0.0.0:8089 -rxx.xx.xx.xx:9090 -t

监听 ss 访问的 127.0.0.1:8089 服务器,将 ss 的 udp 流量转发到本地 6001 端口
speederv2.exe -c -l0.0.0.0:8089 -r127.0.0.1:6001 -f2:4 -k "password" --mode 0 --timeout 1
将本地 6001 端口的 udp 流量转发到远端服务器 554 端口,这个终端需要管理员命令启动
udp2raw_mp_nolibnet.exe -c -l0.0.0.0:6001  -rxx.xx.xx.xx:554 -k "password" --raw-mode easy-faketcp

服务端:

udp2raw --> udpspeeder:
sudo soft/udp/udp2raw/udp2raw_amd64 -s -l0.0.0.0:554 -r127.0.0.1:9000  -a -k "password" --raw-mode faketcp

udpspeeder --> ss
sudo soft/udp/udpspeeder/speederv2_amd64 -s -l0.0.0.0:9000 -rxx.xx.xx.xx:9090 -k "password" --mode 0 -f2:4 -q1

有一个疑问,kcptun+udpspeeder 有加速作用?是否需要加这一层 kcptun ?

1490 次点击
所在节点    宽带症候群
30 条回复
hlz0812
2019-05-29 14:17:13 +08:00
@ttvast 玩是玩的起,共享的很便宜,但不代表你就有合法资质使用,现在好多人偷偷卖,只是上面懒得管,毕竟拿专线玩的人比例极低,大多数人还停留在 vultr 之类的垃圾线路上玩
mattx
2019-05-29 22:55:28 +08:00
@hlz0812 #17 请问下哪种专线?
hlz0812
2019-05-29 22:59:39 +08:00
@mattx 阿里内网专线,bug 拿来卖的那种,正规的就是高速通道业务
hlz0812
2019-05-29 23:03:56 +08:00
@mattx 沪日专线我也用过,那个是正规专线,不是 bug 的,不过正规的带宽通常都是给的很小的(仅从质量的层面上来说是采购的正规的资源,但卖给公众客户违规),看你需要访问哪个地区了,东南亚用深港
NeedforV2
2019-05-30 09:05:59 +08:00
kcptun 不需要,udpspeeder+udp2raw 就足够了
eastlhu
2019-05-30 09:24:02 +08:00
@NeedforV2 #22 kcptun 用来加速 tcp 呢?
NeedforV2
2019-05-30 09:50:33 +08:00
tcp 不需要加速, kcptun 暴力发包,还容易被限制
eastlhu
2019-05-30 10:54:48 +08:00
@NeedforV2 好的,晚上回去试试这个,ss 直接连接,tcp 走 ss,udp2raw 转发 ss 的 udp 流量。那这样是否要把 ss 的服务器上的 udp 转发关闭?
Cheons
2019-05-30 15:17:57 +08:00
不是直连就行嘛???🤔阿里香港、轻量、78ms
ss ( VPS )→sstap (不代理局域国内)→游戏
移动网
cdh1075
2019-06-10 11:25:06 +08:00
ss 是 tcp over tcp udp over udp,你要看你的游戏是 tcp 还是 udp,如果是 udp 你后面那一串就一点用也没有
几乎不丢包的网络用 kcptun 和 udpspeeder 几乎没效果
kcp 和 udpspeeder 是非常愚蠢的,实际上的效果类似 tcp over tcp over tcp,建议只留一个
你的网络都好到 10ms 延迟了,这么麻烦干啥,直接 wireguard 或者 anyconnect 就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/566862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX