一、项目准备

1.1、VMware ESXi

VMware ESXi

1.2、Ubuntu镜像

Ubuntu 22.04.3 ISO

1.3、WireGuard客户端

WireGuard ALL Client

1.4、SSH工具

MobaXterm

1.4.1、MobaXterm激活

MobaXterm 常规设置指南

二、部署Ubuntu

Ubuntu系统在VMware ESXi中安装设置请参考 Ubuntu搭建OpenVPN配置分流规则指南!第二步)

三、安装WireGuard

3.1、安装

apt -y install wireguard

yydy_2023-12-25_15-59-05

3.2、进入WireGurad文件夹

cd /etc/wireguard/ && ll

yydy_2023-12-25_16-03-14

3.3、设置新建文件或目录的默认权限

umask 077

3.4、为服务器生成私钥

wg genkey | tee /etc/wireguard/server.key

yydy_2023-12-25_16-06-25

3.5、为服务器生成公钥

cat /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pub

yydy_2023-12-25_16-07-21

3.6、为客户端生成私钥

wg genkey | tee /etc/wireguard/client.key

yydy_2023-12-25_16-10-00

3.7、为客户端生成公钥

cat /etc/wireguard/client.key | wg pubkey | tee /etc/wireguard/client.pub

yydy_2023-12-25_16-10-48

3.8、创建wg0.conf服务端配置文件

nano /etc/wireguard/wg0.conf

Address,ListenPor,AllowedIPs可以自定义,避免和内网冲突即可

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = 服务端公钥
[Peer]
PublicKey = 客户端私钥
AllowedIPs = 10.0.0.2/32

yydy_2023-12-25_16-20-54

3.9、配置终端上网

如果希望客户端连接VPN后希望能通过VPN隧道上网,还需要添加如下配置到服务端配置,其中ens160是服务端本地上网网卡名称,可以使用:ip addr 查看

ip addr

请注意,这俩行代码必须放在[Interface]服务端配置项内,否则不生效,会导致服务启动失败

PostUp = sysctl -w net.ipv4.ip_forward=1
PostUp = iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE

yydy_2023-12-25_16-43-16

3.10、启动服务

systemctl start wg-quick@wg0

3.11、开机自启

systemctl enable wg-quick@wg0

3.12、状态查看

systemctl status wg-quick@wg0.service

yydy_2023-12-25_16-46-56

四、客户端配置

客户端只介绍Windows端,手机和Windows基本一致

4.1、客户端wg0.conf

DNS场景是内网有DNS服务器是填写,或者客户端所有流量走VPN,且内网有绿色DNS,Endpoint是服务器的上网口IP,如果做了端口映射,这里需要写映射后的公网IP或者域名,AllowedIPs指什么流量走VPN访问,比如下面的配置是192.168.6.254这个IP走VPN,其他默认走本地,如果需要客户端走VPN隧道上网,那这里就需要把AllowedIPs写成0.0.0.0/0

[Interface]
PrivateKey = 客户端私钥
Address = 10.0.0.2/32
DNS = 192.168.6.190
[Peer]
PublicKey = 服务端公钥
AllowedIPs = 192.168.6.254/32
Endpoint = 192.168.6.105:51820

4.2、新建wg0.txt

yydy_2023-12-25_17-03-04

4.3、更改.txt为.conf

yydy_2023-12-25_17-05-35

yydy_2023-12-25_17-04-07

五、客户端测试

yydy_2023-12-25_17-07-19
yydy_2023-12-25_17-07-32
yydy_2023-12-25_17-07-58
yydy_2023-12-25_17-07-53

5.1、查看路由

route print -4

yydy_2023-12-25_17-09-29
yydy_2023-12-25_17-10-50

5.2、修改配置文件

yydy_2023-12-25_17-12-14
yydy_2023-12-25_17-13-44
yydy_2023-12-25_17-14-15

六、拓展

因为我们WireGurad是点到点的连接,所以服务端也能连接客户端

yydy_2023-12-25_17-30-03

Image 1 Image 2

yydy_2023-12-25_17-45-31