lala.im:udp2raw+tinyfecvpn+shadowsocks搭建游戏加速器

運維技術·VPN代理·lala.im · 2020-12-30 · 117 人浏览

原文地址:https://lala.im/7676.html,請支持原作者!該處僅作轉載。

2023年10月21日更新,打个小广告:
本人现承接代搭建MapleStory GMS(冒险岛国际服)游戏加速器业务。
如果你是小白不知道如何操作Linux系统,又或者没有时间折腾这些东西只想安心玩游戏,可以联系我有偿帮你搭建。
请注意我给你部署的方法并不是文章内公开的方法,而是更好用更稳定的方法。我可以做出以下几点保证:
1、你的游戏账号不会被IP连坐封号。
2、使用NexonLauncher启动器不会弹出需要验证邮箱的提示。
3、比市面上的游戏加速器玩起来更流畅,你不会感觉到卡顿、延迟。
你可以在这里下单购买:https://shop.meows.lol/MapleStory
目前在线支付只支持PayPal付款,如果你没有PayPal可以工单联系我,我可以发支付宝二维码给你付款。如果你不知道如何在上述网站发工单也可以直接在这篇文章下留言。
在你购买前需要注意以下几点:
1、你可以自备VPS服务器,我只负责帮你在VPS服务器上部署程序。你也可以选择让我准备VPS服务器,即一条龙服务,所有的东西都交给我处理。根据你自身的需求来下单。
2、如果你自备VPS服务器,请确保服务器IP位于北美范围内,例如美国、加拿大。
3、自备VPS服务器一次性收费12美元,如果你使用支付宝付款则按当天的美元兑人民币汇率来计算。
4、一条龙服务一次性收费12美元,每月收费8美元(VPS服务器每月续费)。
5、只支持使用NexonLauncher启动器,如果你使用Steam请事先切换到NexonLauncher启动器。
——————————————————–分隔线——————————————————–
玩了1年多的美服MapleStory,国服叫冒险岛,不得不说这游戏是真的肝。每天上线玩一点意思都没有感觉就跟上班一样,但是每天不上吧又觉得那些任务没做很亏,现在每天强行上游戏肝2个小时做任务,做完任务就下线。。。
这1年多我一直都用的udp2raw+kcptun+shadowsocks,一直以来都比较好用,但是最近也不是很稳了,经常断线,有时候玩2个小时要断很多次,尤其是清BOSS的时候掉线了就很烦。。。
所以我最近在找一个能稳定不断线的方案,最后我换成了现在的这个配置:
udp2raw+tinyfecvpn+shadowsocks+tinymapper
也就是把kcptun换成了tinyfecvpn,然后udp2raw我之前是在windows上用的easyfaketcp模式,现在改成在虚拟机内用faketcp了。至于tinymapper是一个比较好用的端口转发工具,配合tinyfecvpn用的话可以省很多事情。
废话就不多说了,下面记录下我的配置,如果你要用这套配置的话需要满足以下两个条件:
1.本地有一台运行Debian的虚拟机,用来跑udp2raw的客户端。我是在常年都不关机的NAS上用Proxmox开了一台小鸡部署的。
2.虚拟机的网络是桥接模式,也就是和你要玩游戏的电脑在同一个网段内,比如下面的配置,虚拟机IP是192.168.0.11,电脑IP是192.168.0.199。两边能够互相PING通就OK了。
首先在VPS上安装需要用到的工具:

apt -y update
apt -y install snapd supervisor

使用snap安装最新版的shadowsocks:

snap install core
snap install shadowsocks-libev --edge

设置supervisor开机自启:

systemctl enable --now supervisor

新建一个shadowsocks配置文件:

nano /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json

写入如下配置:

{
    "server":"0.0.0.0",
    "mode":"tcp_and_udp",
    "server_port":9999,
    "local_port":1080,
    "password":"password",
    "timeout":60,
    "method":"chacha20-ietf-poly1305"
}

注:shadowsocks的端口监听在9999,修改password为你的密码。
新建supervisor配置文件,用于守护shadowsocks进程:

nano /etc/supervisor/conf.d/shadowsocks-libev.conf

写入如下配置:

[program:shadowsocks]
priority=1
command=/usr/bin/snap run shadowsocks-libev.ss-server -c /var/snap/shadowsocks-libev/common/etc/shadowsocks-libev/config.json
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/shadowsocks.log

启动shadowsocks:

supervisorctl update

下载解压tinyfecvpn/udp2raw的预编译文件:

cd /opt && mkdir -p tinyfecvpn udp2raw
cd tinyfecvpn
wget https://github.com/wangyu-/tinyfecVPN/releases/download/20180820.0/tinyvpn_binaries.tar.gz
tar -xzvf tinyvpn_binaries.tar.gz
cd ../udp2raw
wget https://github.com/wangyu-/udp2raw-tunnel/releases/download/20200818.0/udp2raw_binaries.tar.gz
tar -xzvf udp2raw_binaries.tar.gz

新建supervisor配置文件,用于守护tinyfecvpn进程:

nano /etc/supervisor/conf.d/tinyfecvpn.conf

写入如下配置:

[program:tinyfecvpn]
priority=1
directory=/opt/tinyfecvpn
command=/opt/tinyfecvpn/tinyvpn_amd64 -s -l 127.0.0.1:7777 --sub-net 10.222.2.0 --tun-dev tun100 -k "password" -f 1:5 --timeout 0 --mode 1 --mtu 1250 --tun-mtu 1250
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/tinyfecvpn.log

注:
1.tinyfecvpn监听在7777端口,-k后面的password修改为你的密码。
2.-f后面的参数我配置的比较暴力,因为我这个机器的线路非常拉跨,我调整了很多次这个参数,最后1:5是最符合我这个机器线路的。这个东西需要根据你自身的实际情况来改变,文章后面我会简单说一下如何调整。
启动tinyfecvpn:

supervisorctl update

新建supervisor配置文件,用于守护udp2raw进程:

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

写入如下配置:

[program:udp2raw]
priority=1
directory=/opt/udp2raw
command=/opt/udp2raw/udp2raw_amd64 -s -l 0.0.0.0:6666 -r 127.0.0.1:7777 --raw-mode faketcp --cipher-mode none -a -k "password"
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/udp2raw.log

注:
1.udp2raw监听在6666端口,-r后面的端口要和tinyfecvpn监听的端口一致。-k后面的password修改为你的密码。
2.因为shadowsocks本身就有加密了,这里的udp2raw没有配置加密。
启动udp2raw:

supervisorctl update

服务端至此全部配置完毕。接下来是客户端的配置。
客户端和服务端都是Debian系统,所以这里你也需要在客户端上下载解压udp2raw/tinyfecvpn以及安装supervisor,步骤和服务端一致这里就不重复了。
假设你的udp2raw/tinyfecvpn/supervisor都已准备好。
现在新建supervisor配置文件,用于守护udp2raw的客户端进程:

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

写入如下配置:

[program:udp2raw]
priority=1
directory=/opt/udp2raw
command=/opt/udp2raw/udp2raw_amd64 -c -r VPSIP:6666 -l 127.0.0.1:8888 --raw-mode faketcp --cipher-mode none -a -k "password"
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/udp2raw.log

注:
1.VPSIP换成你的服务器IP,6666端口是服务端udp2raw所监听的端口,-k后面的密码需要与服务端配置的保持一致。
2.8888端口是udp2raw在本地的监听端口,可以随便起一个端口,只要没有被占用即可。
启动udp2raw的客户端:

supervisorctl update

新建supervisor配置文件,用于守护tinyfecvpn的客户端进程:

nano /etc/supervisor/conf.d/tinyfecvpn.conf

写入如下配置:

[program:tinyfecvpn]
priority=1
directory=/opt/tinyfecvpn
command=/opt/tinyfecvpn/tinyvpn_amd64 -c -r 127.0.0.1:8888 --sub-net 10.222.2.0 --tun-dev tun100 --keep-reconnect -k "password" -f 1:5 --timeout 0 --mode 1 --mtu 1250 --tun-mtu 1250
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/tinyfecvpn.log

注:
1.-f后面的参数以及-k后面的密码需要与服务端配置的保持一致。
2.-r的8888端口需要与udp2raw在本地监听的端口一致。
启动tinyfecvpn的客户端:

supervisorctl update

接着在客户端上下载解压tinymapper:

mkdir -p /opt/tinymapper && cd /opt/tinymapper
wget https://github.com/wangyu-/tinyPortMapper/releases/download/20200818.0/tinymapper_binaries.tar.gz
tar -xzvf tinymapper_binaries.tar.gz

新建supervisor配置文件,用于守护tinymapper进程:

nano /etc/supervisor/conf.d/tinymapper.conf

写入如下配置:

[program:tinymapper]
priority=1
directory=/opt/tinymapper
command=/opt/tinymapper/tinymapper_amd64 -l 0.0.0.0:10800 -r 10.222.2.1:9999 -t -u
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/tinymapper.log

注:
1.-r后面的IP地址不能变,因为我们之前配置的tinyfecvpn的IP段用的就是这个。你这里要改的话,前面的配置都需要改。
2.9999端口是你的shadowsocks服务端口。
3.10800是转发到这台虚拟机的端口,也就是说待会我们连接这台虚拟机的IP:10800就等于是连接服务器上shadowsocks的9999端口。
启动tinymapper:

supervisorctl update

现在所有配置就大功告成了,我们在电脑上配置shadowsocks的连接信息即可,密码和加密方式保持和服务端一致,只需要把IP地址和端口改成下图所示的即可:

範例
现在测试一下效果,直接ping1000次服务器IP,可以看到丢包很多:

範例
走tinyfecvpn的话,可以看到ping1000次的结果,0丢包,并且延迟变的非常稳定,甚至还降低了一点:

範例
这对于游戏来说简直是太完美了,游戏大部分都是低带宽小流量,最重要的就是保证线路没有丢包。
我的这个配置换到你那边用可能就没有这么好的效果,甚至还可能适得其反。这个需要你自己根据自身的网络情况适当调整。所以这里介绍一个很简单的调整方法。
主要是调整tinyfecvpn的-f参数,你可以一点点的往上加,比如先来个2:2,然后去pingtinyfecvpn的ip,如果还是有丢包就改为1:2,还不行的话就1:3/1:4这样,直到没有丢包为止。
但是也不能配置的特别暴力,这样会适得其反,比如我配置成1:10的话,虽然也没有丢包,但是ping值明显会升高。

運維技術 VPN代理 lala.im
Theme Jasmine by Kent Liao