用wireguard搭建vpn

服务器环境:linux devian 10 客户端:win10

安装wireguard

服务器端:

下载wireguard并执行安装脚本:

1
wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh

脚本 Github 开源地址:https://github.com/Nyr/wireguard-install

安装完成后,有几个配置需要选择:

1、选择一个内网 IP,根据实际情况选择,比如我选择192.168.0.169

2、需要选择一个DNS地址,选择 Google 的 DNS。

3、选择一个端口,比如我选择61234,我之前试过默认的51820端口,但是无法连接,所以就改成了61234。可能端口被限制污染原因不清楚。

4、输入一个易记的名称,比如我输入lol,确认后会在root目录下生成一个lol.conf文件,这个就是客户端的配置文件。

5、在 ecs 服务器开放 61234端口,防火墙 udp 61234端口要放行。

脚本说明:

https://github.com/Nyr/wireguard-install

客户端:

1、下载wireguard客户端,下载地址:https://www.wireguard.com/install/

2、在客户端导入lol.config文件,点击连接成功

完成。

wireguard + udp2raw

udp 转换成 tcp 流量

服务端:

1
2
# Run at server side:
nohup ./udp2raw_amd64 -s -l 0.0.0.0:5566 -r 127.0.0.1:61235  -a -k "A84D09159A394A158808D89345BFADCB" --raw-mode faketcp > output.log 2>&1 &
  • -s:服务器模式。
  • -l 0.0.0.0:5566 TCP 5566 端口。
  • -r 127.0.0.1:61235:将解包后的 UDP 流量转发到本地的 WireGuard 端口。
  • -k “A84D09159A394A158808D89345BFADCB”:设置共享密钥(客户端和服务端需一致)。
  • –raw-mode faketcp:伪装成 TCP 流量。
  • -a:自动添加 iptables 规则以确保流量正确处理。

windows 客户端:

安装 winpcap https://www.winpcap.org/install/

1
2
# Run at client side
udp2raw_mp.exe -c -l 0.0.0.0:4566  -r 154.46.49.88:5566 -k "A84D09159A394A158808D89345BFADCB" --raw-mode easy-faketcp
  • -c:客户端模式。
  • -l 127.0.0.1:4566:监听本地 UDP 4566 端口,供 WireGuard 连接。
  • -r <服务器公网IP>:5566:连接到服务器的 TCP 5566 端口。
  • -k “A84D09159A394A158808D89345BFADCB”:与服务器端相同的共享密钥。
  • –raw-mode easy-faketcp:伪装成 TCP 流量。

性能模式:

添加防 UDP2RAW 防火墙规则

1
2
netsh advfirewall firewall add rule name=udp2raw protocol=TCP dir=in remoteip=154.46.49.88/32 remoteport=5566 action=block
netsh advfirewall firewall add rule name=udp2raw protocol=TCP dir=out remoteip=154.46.49.88/32 remoteport=5566 action=block
1
2
udp2raw_mp.exe -c -l 0.0.0.0:4566  -r 154.46.49.88:5566 -k "A84D09159A394A158808D89345BFADCB" --raw-mode faketcp
``