最近在玩跑跑2,这游戏直接裸连是能连上的,但是总遇到无法匹配的问题,所以想整个梯子代理下,遂有这篇文章记录下配置过程。
我以前也写过几篇类似的文章,里面都是用的kcptun,不得不说kcptun用来加速游戏的效果确实很牛逼,但跑跑2这游戏匹配玩家的时候走的是udp,kcptun只能加速tcp,udp流量是不管的,所以我在原有的基础上加了个udpspeeder。这样游戏无论是走tcp还是udp都能加速,走tcp的流量由kcptun加速,走udp的流量由udpspeeder加速。
下面的kcptun配置仅适用于游戏加速,对看视频或者网页的速度没有多大提升,甚至如果你在一个本身就不丢包的链路上用kcptun还会有适得其反的效果。这个kcptun的配置我平时用来玩maplestory国际服,已经用了几年了,不用kcptun加速各种延迟各种卡,用了之后完全感受不到任何延迟卡顿。
至于udpspeeder的配置我还没有使用多长时间,现阶段个人感受到的效果就是不用udpspeeder直接裸连跑跑2经常无法匹配,用了之后无法匹配的现象完全消失。
另外稍微说一下,我玩的这几个游戏对nat要求都不严格,但我还是测了下,这套配置是可以full cone的。对于某些nat限制严格的游戏比如gta5应该也是可以用的。(我电脑里面有gta5但不常玩,懒得试。。)
安装需要用到的包:
apt -y update apt -y install curl iptables supervisor
为后续可以更方便的启停服务,这里就不用systemd了,用supervisor可以把几个进程的启动配置都写在一个配置文件内,方便管理:
systemctl enable --now supervisor
下载解压udp2raw/udpspeeder/kcptun/singbox:
curl -L https://github.com/wangyu-/udp2raw/releases/download/20230206.0/udp2raw_binaries.tar.gz -o udp2raw_binaries.tar.gz curl -L https://github.com/wangyu-/UDPspeeder/releases/download/20230206.0/speederv2_binaries.tar.gz -o speederv2_binaries.tar.gz curl -L https://github.com/xtaci/kcptun/releases/download/v20230214/kcptun-linux-amd64-20230214.tar.gz -o kcptun-linux-amd64-20230214.tar.gz curl -L https://github.com/SagerNet/sing-box/releases/download/v1.2-beta10/sing-box-1.2-beta10-linux-amd64.tar.gz -o sing-box-1.2-beta10-linux-amd64.tar.gz tar -xzvf udp2raw_binaries.tar.gz tar -xzvf speederv2_binaries.tar.gz tar -xzvf kcptun-linux-amd64-20230214.tar.gz tar -xzvf sing-box-1.2-beta10-linux-amd64.tar.gz mv udp2raw_amd64 /usr/local/bin mv speederv2_amd64 /usr/local/bin mv server_linux_amd64 /usr/local/bin mv sing-box-1.2-beta10-linux-amd64/sing-box /usr/local/bin
新建两个目录,用于存放配置文件:
mkdir -p /usr/local/etc/sing-box mkdir -p /usr/local/etc/kcpserver
新建sing-box的配置文件:
nano /usr/local/etc/sing-box/config.json
用sing-box搭建一个ss节点,监听在10000端口:
{ "log": { "level": "info" }, "inbounds": [ { "type": "shadowsocks", "tag": "ss-in", "listen": "0.0.0.0", "listen_port": 10000, "method": "aes-256-gcm", "password": "shadowsockspassword" } ], "outbounds": [ { "type": "direct", "tag": "direct" } ] }
新建kcptun配置文件:
nano /usr/local/etc/kcpserver/server.json
kcptun端口监听在5000:
{ "listen": ":5000", "target": "127.0.0.1:10000", "key": "kcptunpassword", "crypt": "salsa20", "mode": "fast3", "mtu": 1350, "sndwnd": 2048, "rcvwnd": 2048, "datashard": 2, "parityshard": 2, "dscp": 46, "nocomp": true }
新建supervisor配置文件:
nano /etc/supervisor/conf.d/game.conf
写入如下配置:
[program:udp2raw-kcptun] command=/usr/local/bin/udp2raw_amd64 -s -l 0.0.0.0:5001 -r 127.0.0.1:5000 --raw-mode icmp --cipher-mode none -a -k "udp2rawpassword" autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/udp2raw-kcptun.log [program:kcptun] command=/usr/local/bin/server_linux_amd64 -c /usr/local/etc/kcpserver/server.json autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/kcptun.log [program:udp2raw-speederv2] command=/usr/local/bin/udp2raw_amd64 -s -l 0.0.0.0:6001 -r 127.0.0.1:6000 --raw-mode icmp --cipher-mode none -a -k "udp2rawpassword" autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/udp2raw-speederv2.log [program:speederv2] command=/usr/local/bin/speederv2_amd64 -s -l 0.0.0.0:6000 -r 127.0.0.1:10000 -f 2:4 -k "udpspeederpassword" autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/speederv2.log [program:singbox] command=/usr/local/bin/sing-box run -c /usr/local/etc/sing-box/config.json autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/singbox.log
启动:
supervisorctl update
服务端就配置好了,下面是客户端配置。
启动两个udp2raw,第一个套kcptun:
.\udp2raw_mp_nolibnet.exe -c -l 0.0.0.0:50001 -r VPSIP:5001 --raw-mode icmp --cipher-mode none -k "udp2rawpassword"
第二个套udpspeeder:
.\udp2raw_mp_nolibnet.exe -c -l 0.0.0.0:60001 -r VPSIP:6001 --raw-mode icmp --cipher-mode none -k "udp2rawpassword"
kcptun和udpspeeder同时监听本地的12345端口,不会有冲突,因为kcptun只监听tcp,udpspeeder只监听udp:
.\client_windows_amd64.exe -l :12345 -r 127.0.0.1:50001 -key "kcptunpassword" -crypt salsa20 -nocomp -datashard 2 -parityshard 2 -mtu 1350 -sndwnd 512 -rcvwnd 2048 -dscp 46 -mode fast3
.\speederv2_wepoll.exe -c -l 0.0.0.0:12345 -r 127.0.0.1:60001 -f 2:4 -k "udpspeederpassword"
netch配置ss连接本地的12345端口:
整个连接过程:
localhost:12345(tcp)->localhost:50001->server:5001->server:5000->server:10000
localhost:12345(udp)->localhost:60001->server:6001->server:6000->server:10000
原文: