wire=======guard---->wg
云主机为 Debian 12 操作系统,在上面安装 wg服务端:
apt install wg
每个 WireGuard 节点都需要一个公钥和私钥,wg 提供了生成公钥和私钥的命令:
wg genkey | tee /etc/wg/privatekey | wg pubkey > /etc/wg/publickey
chmod 600 /etc/wg/{privatekey,publickey}
privatekey 文件内容为私钥(私钥文件要保密),publickey 文件内容为公钥。
编辑云主机上 wg 配置文件:
nano /etc/wg/wg0.conf
编辑内容为:
[Interface]
Address = 10.20.30.1/24
ListenPort = 51820
PrivateKey = <Server's Private Key>
[Peer]
PublicKey = <Peer's Public Key>
AllowedIPs = 10.20.30.2/32
Interface 为当前节点(服务端节点)的配置信息:Address 为节点 IP,ListenPort 为服务监听接口,PrivateKey 为节点私钥。Peer 为和服务端节点连接的节点(客户端节点)配置信息:PublicKey 为 peer 节点的公钥,AllowedIPs 为客户端节点的 IP 地址。
编辑完了之后,保存退出。然后启动 WireGuard 服务:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
另外还要配置一下防火墙(如果有)和网络:
ufw allow 51820/udp
echo 'net.ipv4.ip_forward=1' | tee -a /etc/sysctl.conf
sysctl -p
到这里,服务端就配置好了。接下来是客户端,这里主要讲解一下 Windows wg客户端的配置。
在 wg.org 上下载 Windows 客户端,安装之后打开,点击“新建空隧道”,并在“创建新隧道“对话框中输入”名称“和配置信息:
[Interface]
Address = 10.20.30.2/32
PrivateKey = <Client's rivate Key>
[Peer]
PublicKey = <Server's Public Key>
Endpoint = <server_ip:51820>
AllowedIPs = 10.20.30.0/24
PersistentKeepalive = 15
客户端 Interface 部分 Address 为客户端节点在 V-P==N 中的 IP 地址,PrivateKey 为客户端节点私钥(需要保密),对话框中公钥内容需要设置到服务端配置文件 Peer 部分的 PublicKey;客户端 Peer 部分 PublicKey 内容需要设置为服务端节点的公钥,Endpoint 的 server_ip 为云主机公网 IP,AllowedIPs 表示wg 隧道将劫持所有目标网段为 10.20.30.0/24 的流量并传给服务器,PersistentKeepalive 为客户端节点向服务端节点发送保活信息的时间间隔(单位:秒)。
编辑完配置内容后点击“保存”,然后点击“连接”即可将客户端连接到 VPN 网络。此时,访问 IP 地址 10.20.30.1 即通过 VPN 网络访问云主机,在云主机上也可以通过 IP 地址 10.20.30.2 访问客户端节点。