WireGuard是UDP数据包,ISP有QoS,所以用Udp2raw-tunnel把UDP伪装成TCP,绕过ISP的限制,接着因为线路质量的问题,再套上UDPspeeder实现多倍发包加速。大致上就是这样。。。
安装wireguard:
yum -y install wget curl nano net-tools supervisor curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo yum -y install epel-release yum -y install kernel-headers-$(uname -r) kernel-devel-$(uname -r) yum -y install wireguard-dkms wireguard-tools
下载UDPspeeder和Udp2raw-tunnel:
mkdir -p /opt/udp2raw && mkdir -p /opt/udpspeeder cd /opt/udp2raw && wget https://github.com/wangyu-/udp2raw-tunnel/releases/download/20181113.0/udp2raw_binaries.tar.gz cd /opt/udpspeeder && wget https://github.com/wangyu-/UDPspeeder/releases/download/20190121.0/speederv2_binaries.tar.gz tar -xzvf /opt/udp2raw/udp2raw_binaries.tar.gz tar -xzvf /opt/udpspeeder/speederv2_binaries.tar.gz rm -rf /opt/udp2raw/udp2raw_binaries.tar.gz && rm -rf /opt/udpspeeder/speederv2_binaries.tar.gz
我是在一条极其辣鸡的线路上部署的这个,有明显的加速效果,但因为每个软件的配置参数很灵活,我的这套配置不一定能在你那边达到最佳的效果,所以实际还是要根据自身的网络情况去调整一些参数。
一些参数配置参考这里:
https://github.com/wangyu-/UDPspeeder/wiki/%E4%BD%BF%E7%94%A8%E7%BB%8F%E9%AA%8C
https://github.com/wangyu-/UDPspeeder/wiki/mode%E5%92%8Cmtu%E9%80%89%E9%A1%B9
我这边直接用supervisor把服务端都丢到后台去运行:
nano /etc/supervisord.d/udp.ini
写入:
[supervisord] nodaemon=false [program:udp2raw] user=root directory=/opt/udp2raw command=/opt/udp2raw/udp2raw_amd64 -s -l 0.0.0.0:50001 -r 127.0.0.1:50000 --raw-mode faketcp -a -k moon5 autorestart=true [program:udpspeeder] user=root directory=/opt/udpspeeder command=/opt/udpspeeder/speederv2_amd64 -s -l 0.0.0.0:50000 -r 127.0.0.1:50002 -f 2:10 --mode 1 --mtu 1400 autorestart=true
设置一下开机自启:
systemctl start supervisord systemctl enable supervisord
配置wireguard:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p mkdir -p /etc/wireguard wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey wg genkey | tee /etc/wireguard/clientprivatekey | wg pubkey > /etc/wireguard/clientpublickey
新建服务端配置文件:
nano /etc/wireguard/wg0.conf
写入如下配置(注意MTU):
[Interface] PrivateKey = 服务端私钥 Address = 192.168.0.1/24 ListenPort = 50002 DNS = 8.8.8.8 MTU = 1200 [Peer] PublicKey = 客户端公钥 AllowedIPs = 192.168.0.0/24
启动WireGuard:
wg-quick up wg0 systemctl enable wg-quick@wg0
防火墙设置:
systemctl restart firewalld systemctl enable firewalld firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.0.0/24 masquerade' firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o eth0 -j ACCEPT firewall-cmd --permanent --add-port=50000/udp firewall-cmd --permanent --add-port=50001/tcp firewall-cmd --permanent --add-port=50002/udp firewall-cmd --reload
假设你把客户端都下载到如下目录,使用PowerShell进入到下面的目录:
cd C:\Users\LALA\Desktop\udp
使用下面的参数启动UDPspeeder:
./speederv2 -c -l 0.0.0.0:12315 -r 127.0.0.1:12316 -f 2:10 --mode 1 --mtu 1400 --report 10
Udp2raw-tunnel:
./udp2raw_mp_nolibnet -c -l 127.0.0.1:12316 -r vpsip:50001 --raw-mode easyfaketcp -k moon5
注:按作者说的话,这里这个easyfaketcp的性能没有faketcp的性能好,如果需要用faketcp的话,可以看这个说明修改
WireGuard的客户端配置文件:
[Interface] PrivateKey = 客户端私钥 Address = 192.168.0.2/24 DNS = 8.8.8.8 MTU = 1200 [Peer] PublicKey = 服务端公钥 Endpoint = 127.0.0.1:12315 AllowedIPs = 0.0.0.0/0, ::0/0 PersistentKeepalive = 25
记一下需要注意的地方:
1.UDPspeeder的参数需要调整,尤其是-f发包的倍率,这个要根据实际的网络环境去调整,我这个线路特别烂,所以我这篇文章里面这个参数设置的比较暴力。。。
2.WireGuard内的MTU改为1200,不然Udp2raw-tunnel一直报huge packet mtu什么的。。。
搞不动了,差不多就这样吧。。。
参考文献:
https://github.com/wangyu-/UDPspeeder/wiki/UDPspeeder%E5%92%8Cudp2raw%E4%B8%B2%E8%81%94%E5%8A%A0%E9%80%9FOpenVPN
有JB
服务端来个一键脚本吧?或者docker?
大佬图好看,嘿嘿
想伪装成websocket ttps://github.com/mhzed/wstunnel
可以实现,但不是用这个项目,这个项目是一个纯TCP隧道,WireGuard是UDP的。。要用的话可以试这个:https://github.com/erebe/wstunnel
大佬,请问用wstunnel和udp2raw有什么区别吗?或者说选哪个好一点
你说的wstunnel是哪个工具我都不知道。。udp2raw看情况使用,如果你的运营商没有对udp进行干扰就不需要用。
博主球无水印配图,嘤嘤嘤
成功炸出一只嘤嘤怪:https://233.fi/image/dgI9
教程不错,请问博主的vps是什么系统?
CentOS7
是不是要升级内核啊
sry 眼瞎,看到升级了,,,
la神的教程就是伤心悦目!赞一个!自己动手试试
= =
lala, 能不能出一个udp2raw+udpspeeder+ss 的教程啊,想看你的教程!
看吧,有空的话可能会水一下文章。。