Evilmass

NS 加速器搭建 - tinyfecVPN + udp2raw

最近玩 MHXX,集会所的服务器在日本,但联机的时候用的是 P2P,所以任务主的网络情况会影响到其他玩家

校园网的 NAT 类型为 C,联机经常出现进不去集会所和卡顿瞬移的现象。故动手搭建 UDP Server
before_udp_speedup


加速原理

events


udp2raw 可以把 udp 流量伪装成 tcp,防止 udp 被运营商限速或断流。即使发生断流,udp2raw 可以检测到这种情况并自动帮你重连

主机环境:腾讯学生云 - CentOS 7.4 64位

优先选择香港、台湾、日本的 VPS,符合低延迟高稳定即可,带宽要求不严格
为什么选了学生云?
poor

Shadowsocks-libev

yum update -y
yum install epel-release -y
yum install git gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y

git clone https://github.com/shadowsocks/shadowsocks-libev
cd shadowsocks-libev
git submodule update --init --recursive
./autogen.sh && ./configure && make
sudo make install

ss.json

vim /etc/shadowsocks/ss.json

{
    "server":"0.0.0.0",
    "server_ipv6": "[::]",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "server_port": 12345,
    "password": "passwd",
    "timeout":600,
    "method":"chacha20-ietf",
}

Systemctl

vim /etc/systemd/system/ss.service

[Unit]
Description=Shadowsocks libev Server Service
After=network.target

[Service]
Type=forking
PermissionsStartOnly=true
ExecStart=/usr/local/bin/ss-server -u -v -c /etc/shadowsocks/ss.json -f /var/run/ss.pid
Restart=on-abort
User=nobody
Group=nobody
UMask=0027

[Install]
WantedBy=multi-user.target

自启动

systemctl damon-reload
systemctl start ss
systemctl enable ss
systemctl status ss


tinyfecVPN

release 中的 server 是有限制的
limit
修改 makefile 里面的 target,只保留 amd64
makefile

yum install gcc-c++
git clone https://github.com/wangyu-/tinyfecVPN.git
cd tinyfecVPN
git clone https://github.com/wangyu-/UDPspeeder.git #不知道为什么没有同步这个文件夹
make nolimit_release

VPS 上 没 make 成,在树莓派编译通过了
make_error


放个编译好的版本
tinyfecvpn_download

run as non-root

下载项目 release 中提供的 tinymapper_amd64 和 udp2raw_amd64

chmod +x tinyvpn_amd64 tinymapper_amd64 udp2raw_amd64

sudo setcap cap_net_admin+ep ./tinyvpn_amd64
sudo setcap cap_net_admin+ep ./tinymapper_amd64
sudo setcap cap_net_admin+ep ./udp2raw_amd64


清空 iptables

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT


Server

Server ip:1.1.1.1

tinyvpn.service

[Unit]
Description=tinyvpn
[Service]
TimeoutStartSec=0
ExecStart=/root/tools/udp/tinyvpn_amd64 -s -l 0.0.0.0:9988 --sub-net 10.22.22.0 -f2:4 --timeout 0 -k "passwd" --report 10 > /root/tools/udp/tinyvpn.log &
ExecStop=/usr/bin/killall tinyvpn_amd64
[Install]
WantedBy=multi-user.target

udp2raw.service

[Unit]
Description=udp2raw
[Service]
TimeoutStartSec=0
ExecStart=/root/tools/udp/udp2raw_amd64 -s -l0.0.0.0:9977 -r 127.0.0.1:9988 -k "passwd" --raw-mode faketcp -a > /root/tools/udp/udp2raw.log &
ExecStop=/usr/bin/killall udp2raw_amd64
[Install]
WantedBy=multi-user.target


Clinet - 树莓派配置

sudo vim udp_speedup.sh

#!/bin/bash

sudo killall udp2raw_arm
sudo killall tinyvpn_arm
sudo killall tinymapper_arm

sudo /home/pi/udp/udp2raw_arm -c -r1.1.1.1:9977 -l 0.0.0.0:9988 --raw-mode faketcp -a -k "passwd" > /home/pi/udp/udp2raw.log &
/home/pi/udp/tinyvpn_arm -c -r0.0.0.0:9988 --sub-net 10.22.22.0 -f2:4 --timeout 0 -k "passwd" --keep-reconnect --report 10 > /home/pi/udp/tinyvpn.log &
/home/pi/udp/tinymapper_arm -l0.0.0.0:30003 -r10.22.22.1:12345 -t -u > /home/pi/udp/tinymapper.log &

12345是上面的 ss-libev 端口


路由设置

这里用的是 Openwrt,梅林的好像要更方便一点,直接在路由器上运行的话替换 mips24kc 的即可
IP 填的是树莓派的地址
Password 填 ss-libev 设置的密码
ss-client


加速参数设置

参考 推荐配置,设置为 -f2:4 --timeout 0 之后,游戏流畅度明显提升
after_udp_speedup




你要是打赏的话我可能会去买网易UU加速器~

支付宝
支付宝
微信
微信