8.9. 使用 wg-quick 服务配置 WireGuard 服务器
您可以通过在 /etc/wireguard/
目录中创建配置文件来配置 WireGuard 服务器。使用此方法独立于 NetworkManager 配置服务。
此流程假设以下设置:
server:
-
私钥:
YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg=
-
隧道 IPv4 地址:
192.0.2.1/24
-
频道 IPv6 地址:
2001:db8:1::1/32
-
私钥:
Client:
-
Public key:
bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=
-
隧道 IPv4 地址:
192.0.2.2/24
-
频道 IPv6 地址:
2001:db8:1::2/32
-
Public key:
先决条件
- 您已为服务器和客户端生成了公钥和私钥。
您知道以下信息:
- 服务器的私钥
- 客户端的静态隧道 IP 地址和子网掩码
- 客户端的公钥
- 服务器的静态隧道 IP 地址和子网掩码
流程
安装
wireguard-tools
软件包:# dnf install wireguard-tools
使用以下内容创建
/etc/wireguard/wg0.conf
文件:[Interface] Address = 192.0.2.1/24, 2001:db8:1::1/32 ListenPort = 51820 PrivateKey = YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg= [Peer] PublicKey = bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= AllowedIPs = 192.0.2.2, 2001:db8:1::2
[Interface]
部分描述了服务器上接口的 WireGuard 设置:-
Address
:逗号分隔的服务器的隧道 IP 地址的列表。 -
PrivateKey
:服务器的私钥。 ListenPort
:WireGuard 在其上侦听传入的 UDP 连接的端口。在主机上始终设置固定端口号,接收传入的 WireGuard 连接。如果您没有设置端口,WireGuard 会在每次激活
wg0
接口时使用随机的空闲端口。
-
每个
[Peer]
部分描述了一个客户端的设置:-
PublicKey
:客户端的公钥。 -
AllowedIPs
:允许向这个服务器发送数据的客户端的隧道 IP 地址。
-
启用并启动 WireGuard 连接:
# systemctl enable --now wg-quick@wg0
systemd 实例名称必须与
/etc/wireguard/
目录中不带.conf
后缀的配置文件的名称匹配。该服务还会将这个名称用于虚拟网络接口。
验证
显示
wg0
设备的接口配置:# wg show wg0 interface: wg0 public key: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= private key: (hidden) listening port: 51820 peer: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= allowed ips: 192.0.2.2/32, 2001:db8:1::2/128
要在输出中显示私钥,请使用
WG_HIDE_KEYS=never wg show wg0
命令。显示
wg0
设备的 IP 配置:# ip address show wg0 20: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.1/24 scope global wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global valid_lft forever preferred_lft forever
其他资源
-
您系统上的
wg (8)
和wg-quick (8)
手册页