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