可从Epel和Elrepo信息库安装WireGuard工具和内核模块。要将存储库添加到系统中,请运行以下命令:

sudo yum install epel-release elrepo-release 

完成后,安装WireGuard软件包:

sudo yum install kmod-wireguard wireguard-tools

配置WireGuard

sudo mkdir /etc/wireguard

/etc/wireguard目录中生成公钥和私钥

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

您可以使用cat或来查看文件less。私钥绝对不能与任何人共享。
现在已经生成了密钥,下一步是配置将路由VPN通信的隧道设备。

可以使用ip在命令行中设置设备,也可以使用wg文本编辑器创建配置文件。

创建一个名为的新文件,wg0.conf并添加以下内容:
sudo vi /etc/wireguard/wg0.conf

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp     = firewall-cmd --zone=public --add-port 51820/udp && firewall-cmd --zone=public --add-masquerade
PostDown   = firewall-cmd --zone=public --remove-port 51820/udp && firewall-cmd --zone=public --remove-masquerade

该接口可以命名为任意名称,但是建议使用诸如include wg0或的名称wgvpn0。界面部分中的设置具有以下含义:

  • 地址- wg0接口的v4或v6 IP地址的逗号分隔列表。使用专用于私有网络的范围内的IP(10.0.0.0/8、172.16.0.0/12或192.168.0.0/16)。
  • ListenPort-WireGuard接受传入连接的端口。
    PrivateKey- wg genkey命令生成的私钥。(要查看该文件运行的内容:sudo cat /etc/wireguard/privatekey)
  • SaveConfig-设置为true时,关闭时接口的当前状态保存到配置文件中。
  • PostUp-在启动界面之前执行的命令或脚本。在此示例中,我们firewall-cmd用来打开WireGuard端口并启用伪装。这将允许流量离开服务器,从而使VPN客户端可以访问Internet。
  • PostDown-在关闭接口之前执行的命令或脚本。接口关闭后,防火墙规则将被删除。

该wg0.conf和privatekey文件不应该是人类可读普通用户。用于chmod将权限设置为600:
sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf}
完成后,wg0使用配置文件中指定的属性启动接口:
sudo wg-quick up wg0
要查看接口状态和配置,请运行:
sudo wg show wg0
要wg0在启动时启用接口,请运行以下命令:
sudo systemctl enable wg-quick@wg0

服务器网络
为了使NAT正常工作,我们需要启用IP转发。创建一个ne文件/etc/sysctl.d/99-custom.conf,并添加以下行:sudo vi /etc/sysctl.d/99-custom.conf 内容:net.ipv4.ip_forward=1
保存文件并应用更改:sudo sysctl -p /etc/sysctl.d/99-custom.conf

客户端/etc/wireguard/wg0.conf

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24


[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0