如果你要用这套配置的话需要满足以下两个条件:
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地址和端口改成192.168.0.11 / 10800