使用wireguard 配合 udp2raw
udp2raw 支持 faketcp udp icmp 隧道。。
很多鸡 你发现ping值很低。但是udp游戏实际 连接你会发现。延迟会坡高。
所以我一直采用icmp 方式打游戏 (断流的服务器)是用不了的。所以,打游戏的成本很高。
废话不说上教程。
首先 wireguard 是一款开源 轻量 快速 安全的vpn加密协议。提供很好的安全性。目前已被主流系统内置支持。
安装 wireguard 以-debian ubuntu 为例
apt update && apt install wireguard -y
配置wireguard 复制已下脚本 并创建 一个本地(运行网上脚本前-建议先检查)脚本。
vim 或 nano wireguard.sh 并将下面脚本复制进来
#! /bin/bash
apt update && apt upgrade -y
apt install wireguard net-tools -y
cd /etc/wireguard
sysctl -w net.ipv4.ip_forward=1
sysctl -p
wg genkey | tee gw-privatekey | wg pubkey > gw-publickey
for a in 1 2 3 4 5 6 7
do
wg genkey | tee $a-privatekey | wg pubkey > $a-publickey
done
ovrn=`ifconfig | grep -v docker | grep -v br | grep -v lo | grep flags| head -n 1 | awk -F ":" '{print $1}'`
read -p "输入端口" duankou
read -p "输入wg名称" ipduan
cat > $ipduan.conf <<EOF
[Interface]
ListenPort = $duankou# 客户端连过来填写的端口,安全组的tcp和udp都要放行
Address = 172.19.0.1/24 #wg之前通信组网的内网ip和段
PrivateKey = $(cat gw-privatekey) # 使用 shell 读取gateway的私钥到这里
# 下面两条是放行的iptables和MASQUERADE
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o $ovrn -j MASQUERADE; iptables -t nat -A POSTROUTING -o $ipduan -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o $ovrn -j MASQUERADE; iptables -t nat -D POSTROUTING -o $ipduan -j MASQUERADE
EOF
for c in 1 2 3 4 5 6 7
do
b=`expr $c + 1`
cat >> $ipduan.conf <<EOF
[Peer]
PublicKey = $(cat $c-publickey)
AllowedIPs = 172.19.0.$b/32
EOF
done
for d in 1 2 3 4 5 6 7
do
e=`expr $d + 1`
cat > $d.conf <<EOF
[Interface]
PrivateKey = $(cat $d-privatekey)
Address = 172.19.0.$e/24
DNS = 8.8.8.8
[Peer]
PublicKey = $(cat gw-publickey)
AllowedIPs = 0.0.0.0/0
Endpoint = $(curl -s4 ip.sb):$duankou
PersistentKeepalive = 5
EOF
done
chmod 600 /etc/wireguard/*
ufw allow $duankou/udp
systemctl enable wg-quick@$ipduan
wg-quick up $ipduan
运行
bash wireguard.sh
脚本会让你 输入端口及 创建的本地网口的名称。建议填写 wg0
脚本无报错 运行完毕后。 到 /etc/wireguard/ 文件夹下,会看到 一堆客户端文件 *.conf。 留用。
安装 udp2raw
github 地址 下载最新版本 解压
获取 到一堆运行文件。选取对应自己系统的文件
这里建议使用tmux 挂到后台运行。以免退出vps控制后结束 vps不重启 进程一直运行。
安装 tmux apt install tmux -y
运行tmux
输入 tmux 进入tmux界面
运行udp2raw cd /udp2raw 所在文件夹
./udp2raw_amd64 -s -l0.0.0.0:(自选端口) -r 127.0.0.1:"上面填的wireguard 端口” -k "passwd 密码" --raw-mode icmp -a
./udp2raw_amd64 -s -l0.0.0.0:1234 -r 127.0.0.1:"5555” -k "passwd 密码" --raw-mode icmp -a
无报错 显示 监听中 即运行成功。
退出 tmux 按 ctrl + b 在按下 d 扔到后台运行。 想回来输入
tmux -u attac
windows 需要配合 winpcap或 npcap 自行查找 两个软件 安装 即可
下载windows 端
udp2raw windows mac 下载地址
下载到桌面 进入文件所在的文件夹
在地址栏 输入cmd 进入终端
运行客户端
./udp2raw_mp.exe -c -l0.0.0.0:3333 -r(vps的ip地址 不支持域名):1234 -k "passwd" --raw-mode icmp -a
./udp2raw_mp.exe -c -l0.0.0.0:3333 -r44.55.66.77:1234 -k "passwd" --raw-mode icmp -a
如果 报错
--dev have not been set, trying to detect automatically, available devices:
available device(device name: ip address ; description):
安装 windows 端 wireguard
下载地址
去 vps的 /etc/wireguard/ 文件夹下。查找客户端文件
cat 1.conf
复制得到的内容 记得把你vps的ip和端口 改成 127.0.0.1:3333 即windows 端udp2raw 的监听地址 其他不动
[Interface]
PrivateKey = XXXXXXXXXXXXXXXXXXX
Address = 172.19.0.2/24 #wg之前通信组网的内网ip和段,主机位每个得不一样
DNS = 8.8.8.8
[Peer]
PublicKey = xxxxxxxxxxxxxxxxx # gateway的公钥
AllowedIPs = 0.0.0.0/0
Endpoint = 127.0.0.1:3333 #gateway 公网ip和端口
PersistentKeepalive = 5 # 心跳时间
打开 wireguard 左下角 新建隧道 新建空白隧道
粘贴进去,随便起个名字
连接进出数据 流动即连接成功。
这里还要改一个地方 刚刚配置文件 dns下 加一个
mtu=1280 以免包太大电脑 加载不了页面
连接成功-开干。
目前使用富婆家hk 电信宽带 。晚高峰吃鸡无丢包。选鸡也很重要。
@九洲 为了加速,集思广益,共同进步。
好复杂,直接IPLC + SS方便点
@AnLin #1 其实很简单。就两个软件 。 走一次就清晰 了
家里有软路由的,或者linux设备的。把udp2raw 安装在linux 设备上。电脑 只安装 个wireguard即可了
用 wireguard 不会被墙么
@brains #4 走的icmp隧道!!!怎么墙。
@九洲 #5 好吧 不懂 只是看见有人讨论说wireguard容易被墙
不错,没使用过udp2raw+wg的组合,一会儿测试下。
tmux太麻烦,帮你补充个 udp2raw 的开机服务,路径请自行修改:
生成开机自动服务
刷新服务,开机启动,开启服务,查看运行状态
服务相关命令
win端可以使用nekoray做链式,也很方便。
@0xIKKI #7 给力
插眼