Google Compute Engine VM 上的 Debian Buster 映像,我将这个 systemd-networkd 配置放置在 /etc/systemd/network/wg0.netdev 以配置 Wireguard 设备:
[NetDev]
Name=wg0
Kind=wireguard
[WireGuard]
PrivateKey = XXXXX
ListenPort = 51820
[WireGuardPeer]
Endpoint = XXXXX:51820
PublicKey = XXXXX
AllowedIPs = XXXXX/32
AllowedIPs = XXXXX/24
启动 systemd-networkd 服务时,出现此错误:
Starting Network Service...
Failed to generate predictable MAC address for wg0: No such file or directory
Could not load configuration files: No such file or directory
systemd-networkd.service: Main process exited, code=exited, status=1/FAILURE
奇怪的是:
- 我可以通过手动配置而不是通过 systemd 在 GCP 服务器上成功启动 wg0 接口
- 我可以在其他提供商虚拟机(测试 Vultr 和本地 Vagrant)上成功使用上述 systemd-networkd 配置
因此,该错误仅发生在 GCP 服务器上使用 systemd-networkd 配置的特定组合中。
我在所有服务器上使用完全相同的 Linux 内核和 Wireguard 版本。如果它是特定于 GCP 的配置,我似乎找不到任何相关文档。
我已经使用 Ubuntu 18.04 检查了 GCE VM 上的 Wireguard,它运行时没有任何问题。
请在下面找到我的步骤:
wireguard-tools
:此外,请在此处查看Ubuntu 较新版本的第 3 方指南。
自从我的原始报告以来,问题似乎已经解决,无论是在 GCP 的图像中,还是在 systemd 本身中。现在工作正常。