前言#
由于前段时间去市场监督局注销了企业,导致使用企业备案的域名也被工信部撤销了备案登记,网站也因此无法继续访问。但是看到还有几台 3 年后的服务器,觉得很可惜,于是决定使用 Oracle 的免费小机来实现中转跳过备案。说干就干!WireGuard 组网一把梭,发现在高峰期对 UDP 协议的干扰阻断特别严重,而且还被 MTU 值的大小坑了好久。对此非常气愤的我只能上 GitHub 找找有没有什么好用的项目,还真让我找到了 udp2raw 项目,服务一跑... 结束!
WireGuard 与 udp2raw#
WireGuard
一款被 Linux 创始人称为艺术品的组网神器
官网:https://www.wireguard.com/
udp2raw
跨平台版 udp2raw,简称 udp2raw_mp(mp=multiplatform),支持 Windows/Mac/BSD/Linux。
项目地址:https://github.com/wangyu-/udp2raw-multiplatform
中文文档:https://github.com/wangyu-/udp2raw-multiplatform/wiki/%E4%B8%AD%E6%96%87%E6%96%87%E7%AB%A0
实现原理#
配置#
WireGuard 配置#
在服务器上,添加一个接口,监听 4321 端口,接收转发过来的流量。
[Interface]
PrivateKey = # 私钥
Address = 10.2.0.1/24
PostUp = iptables -A FORWARD -i wg2 -j ACCEPT; iptables -A FORWARD -o wg2 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg2 -j ACCEPT; iptables -D FORWARD -o wg2 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 4321
DNS = 8.8.8.8
MTU = 1200
[Peer]
PublicKey = # 机器B的公钥
AllowedIPs = 10.2.0.2/32
在客户端上,也添加一个接口,将 Endpoint 设置为 127.0.0.1:3333,流入 udp2raw 的入站。
[Interface]
PrivateKey = # 私钥
Address = 10.2.0.2/24
DNS = 8.8.8.8
MTU = 1200
[Peer]
PublicKey = # 机器A的公钥
Endpoint = 127.0.0.1:3333
AllowedIPs = 10.2.0.0/24
配置完成,更多详细命令请参考文章底部的相关文档。
udp2raw 配置#
在服务器上后台运行以下命令:
nohup ./udp2raw_x86 -s -l0.0.0.0:54321 -r 127.0.0.1:4321 -a -k "passwd" --raw-mode faketcp > udp2raw.log 2>&1 &
需要开放服务器的 54321 端口。
在客户端上后台运行以下命令:
nohup ./udp2raw_x86 -c -l0.0.0.0:3333 -r 175.178.196.126:54321 -k "passwd" --raw-mode easy-faketcp > udp2raw.log 2>&1 &
配置完成。