wg安装

Centos8

$ sudo yum install elrepo-release epel-release
$ sudo yum install kmod-wireguard wireguard-tools

Centos7

$ sudo yum install epel-release https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
$ sudo yum install yum-plugin-elrepo
$ sudo yum install kmod-wireguard wireguard-tools

服务器配置

# 生成服务器私钥
wg genkey > privatekey
# 生成服务器公钥
wg pubkey < privatekey > publickey
# 生成口令(每个peer一个) 貌似我没用上
wg genpsk > presharedkey

# 服务器配置文件设置
cat /etc/wireguard/wg0.conf
[Interface]
Address = 192.168.8.1/24
##以下两行是iptables防火墙使用
#PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
##以下两行是firewall防火墙使用
PostUp = firewall-cmd --zone=public --add-port 53889/udp && firewall-cmd --zone=public --add-masquerade
PostDown = firewall-cmd --zone=public --remove-port 53889/udp && firewall-cmd --zone=public --remove-masquerade
ListenPort = 53   # 注意该端口是UDP端口
PrivateKey = 服务器私钥

[Peer]
PublicKey = 客户端公钥 ## 后面讲如何拿这个key及配置命令
PresharedKey = 口令 ## 我的配置中这个东西没用上,就算配置了,wg自动也给整没了,可能后面版本中没有了
AllowedIPs = 192.168.8.10/32

开启系统转发

系统转发注意开启 net.ipv4.ip_forward = 1
CentOS8中如下

sudo vi /etc/sysctl.d/99-custom.conf
net.ipv4.ip_forward=1

保存文件,并且应用修改:

sudo sysctl -p /etc/sysctl.d/99-custom.conf

开启关闭wg指令:

wg-quick up wg0
wg-quick down wg0

客户端配置

客户端配置文件

[Interface]
PrivateKey = 客户端私钥 ##一般自动生成,别动它
Address = 192.168.8.10/32
DNS = 114.114.114.114

[Peer]
PublicKey = 服务器公钥
PresharedKey = 口令
AllowedIPs = 0.0.0.0/0
Endpoint = 服务器IP:服务器端口
PersistentKeepalive = 30

将节点添加到服务器

将客户端的公钥和 IP 地址添加到服务器:

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 192.168.8.10

确保修改CLIENT_PUBLIC_KEY为你在客户端机器上修改的公钥(sudo cat /etc/wireguard/publickey),并且调整客户端 IP 地址。Windows 用户可以从 WireGuard 应用中拷贝公钥。

查看状态

sudo wg