跳转到内容
登录关注  
洛汐

游戏福音:kcptun+udp2raw解决udp干扰/QoS

已推荐帖子

情况是这样,我最近拿kcptun+sstap用于游戏加速,稳定了大概2-3天的样子,具体的配置过程可以看这篇文章:

自建冒险岛国际服(GMS)游戏加速器

自从上了kcptun,玩这种美服游戏就感觉在玩国服,几乎感觉不到什么延时,然而好景不长。。延时的问题算是解决了,但新的问题粗来了。。

最近这几天经常会出现kcptun断流的问题,具体表现是kcptun这边不报任何错误,但经过kcptun的流量就是无法到达对端,基本上只要断流了就要等个几分钟才能恢复(或者根本恢复不了,就像黑名单了一样)。

最直观的是在sstap上测试连接,走了kcptun的流量全部连接都被服务器放弃:

lala.im_2019-11-11_14-47-26.png

如果这时候直接连接ss的话是没有问题的,所以我初步怀疑是电信运营商QoS了。

后续我将宽带IP重新拨号,只要换一个IP就能立马连上,所以基本可以断定是电信这边搞的鬼。

我寻思我就每天拿来玩下游戏,一天下来用的流量也不超过2GB,你这样搞,简直没有人性啊!TM的一个月125的宽带这点UDP流量都不让跑?

没办法,kcptun这个东西我必须要用,所以只能在kcptun前面再套一个udp2raw解决运营商的QoS问题了。

其实说实话,这样配置起来的话我自己都觉得有点麻烦了,这套那套的。。端口用了一堆,软件也开了一堆。。对于新手来说肯定是极其不友好,所以我建议萌新如果怕麻烦,直接花钱买现成的服务吧。。。(不过买的肯定没这样配置的好用)

首先要准备一堆软件:

https://github.com/xtaci/kcptun/releases # 服务端和客户端都要下载
https://github.com/dfdragon/kcptun_gclient/releases # 客户端下载
https://github.com/wangyu-/udp2raw-tunnel/releases # 服务端下载
https://github.com/wangyu-/udp2raw-multiplatform/releases # 客户端下载
https://github.com/wangyu-/tinyPortMapper/releases # 客户端下载
https://github.com/mayunbaba2/SSTap-beta-setup # 客户端下载

以下步骤在Debian10上完成。其他系统除了supervisor的配置文件路径有点变化外基本也一样。

安装ss和一些工具:

apt -y update
apt -y install shadowsocks-libev supervisor wget nano

下载kcptun:

mkdir -p /opt/kcptun && cd /opt/kcptun
wget https://github.com/xtaci/kcptun/releases/download/v20190924/kcptun-linux-amd64-20190924.tar.gz
tar -xzvf kcptun-linux-amd64-20190924.tar.gz
chmod +x server_linux_amd64

下载udp2raw:

mkdir -p /opt/udp2raw && cd /opt/udp2raw
wget https://github.com/wangyu-/udp2raw-tunnel/releases/download/20190716.test.0/udp2raw_binaries.tar.gz
tar -xzvf udp2raw_binaries.tar.gz
chmod +x udp2raw_amd64

编辑ss的配置文件:

nano /etc/shadowsocks-libev/config.json

修改为:

{
    "server": "0.0.0.0",
    "mode":"tcp_and_udp",
    "server_port":12315,
    "local_port":1080,
    "password":"设置你的ss密码",
    "timeout":60,
    "method":"chacha20-ietf-poly1305"
}

重启ss以及设置ss开机自启:

systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev

新建kcptun配置文件:

nano /opt/kcptun/server-config.json

写入如下配置(MTU设置为1300或者更小):

{
"listen": ":30000",
"target": "127.0.0.1:12315",
"key": "设置一个密码",
"crypt": "salsa20",
"mode": "fast3",
"mtu": 1300,
"sndwnd": 1024,
"rcvwnd": 1024,
"datashard": 2,
"parityshard": 2,
"dscp": 46,
"nocomp": true
}

注:这套是游戏加速的配置,如果是看Youtube视频等大流量应用,需要把datashard以及parityshard适当增大。

新建一个kcptun的supervisor配置文件:

nano /etc/supervisor/conf.d/kcptun.conf

写入:

[program:kcptun]
priority=1
directory=/opt/kcptun
command=/opt/kcptun/server_linux_amd64 -c /opt/kcptun/server-config.json
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/kcptun.log

再新建一个udp2raw的supervisor配置文件:

nano /etc/supervisor/conf.d/udp2raw.conf

写入如下配置:

[program:udp2raw]
user=root
priority=1
directory=/opt/udp2raw
command=/opt/udp2raw/udp2raw_amd64 -s -l 0.0.0.0:30001 -r 127.0.0.1:30000 --raw-mode faketcp -a -k "设置一个你的密码"
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/udp2raw.log

更新supervisor配置/开机自启:

supervisorctl update
systemctl enable supervisor

服务端这边的配置就完成了,接下来是客户端的。

首先用管理员权限开2个powershell,进入到软件的根目录:

cd C:\Users\LALA\Desktop\udp

第一个powershell运行tinyPortMapper用来转发UDP流量:

.\tinymapper_wepoll.exe -l 0.0.0.0:9527 -r VPS公网IP:12315 -u

这步的作用仅仅只是为了让SSTap能够测试通过UDP转发,让其能够可以连接代理服务器,对于使用TCP协议进行连接的游戏而言这个操作没有实际意义。

第二个powershell运行udp2raw的windows客户端:

.\udp2raw_mp_nolibnet.exe -c -r VPS公网IP:30001 -l 0.0.0.0:5000 --raw-mode easyfaketcp -k "对应服务端上的udp2raw密码"

打开KCP客户端配置管理工具,新建一个客户端,按照下图配置:

lala.im_2019-11-11_16-52-16.png

传输模式和服务端上的配置对应这里选择fast3:

lala.im_2019-11-11_16-53-39.png

现在打开SSTap添加一个ss代理,配置如下:

lala.im_2019-11-11_16-56-47.png

最后点击SSTap的齿轮按钮,打开附加路由管理,在里面添加上你的VPS公网IP,动作选择直连:

lala.im_2019-11-11_16-58-20.png

没问题的话现在连上应该就OK了。

一点后续补充:

在本地每次都要开两个powershell感觉不优雅?这里其实可以用winSW把这两个命令行工具创建成windows服务,这样就能开机自启而且还不需要powershell了,具体的winSW用法,可以看这里,我实在没时间码字了,告辞:

https://github.com/kohsuke/winsw/blob/master/doc/installation.md

查看完整帖子

分享这篇帖子


链接帖子

参与讨论

你现在可以发表并稍后注册。 如果你有帐户,现在就登录参与讨论。

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   你的链接已自动嵌入.   显示为链接来代替

×   你之前的内容已恢复.   清除编辑器

×   你无法直接粘贴图片。要从网址上传或插入图片。

登录关注  

×
×
  • 创建新的...