配置持久的 wireguard 网络接口

配置持久的 wireguard 网络接口

我已经在Alpine Linux 3.16.2. 手动服务器和客户端配置工作正常。

uname -mrs
# Linux 5.15.60-0-virt aarch64

ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.0.4/8
wg setconf wg0 /etc/wireguard/wg0.conf
ip link set up dev wg0
wg
# interface: wg0
#   public key: 9nEynT6g.....
#   private key: (hidden)
#   listening port: 31194
# peer: A2zDuhbX6....
#   allowed ips: 10.0.0.5/32

但当我重启系统时,设备 wg0 消失了。如何让它永久存在?

我按照说明Alpine Linux 设置 WireGuard VPN 服务器但似乎有点过时了。

当将接口添加到 /etc/network/interfaces 时,我遇到了以下问题。他们没有直接向此文件添加新条目,因为NOTE: /sbin/assemble-interfaces rewrites this file. Edit files in /etc/network/interfaces.d/ to persist any customizations

如果我添加带有接口描述的新配置文件,则重启后它不会加载:

nano /etc/network/interfaces.d/wg0

的内容/etc/network/interfaces.d/wg0

auto wg0
iface wg0 inet static
    address 10.0.0.4/8
    gateway 10.0.0.1
    pre-up ip link add dev wg0 type wireguard
    pre-up wg setconf wg0 /etc/wireguard/wg0.conf
    post-down ip link delete wg0

手动配置有效。我可以从远程客户端到服务器建立 VPN 连接,使用私有地址 10.0.0.4 通过 ssh 连接到服务器并访问 Internet。那么如何在 Alpine Linux 3.16.2 上将此接口配置为在启动时启动]1

答案1

/sbin/assemble-interfaces脚本(和/etc/network/interfaces.d/目录)不是 Alpine Linux 的标准组成部分。它可能是您添加的其他网络包的一部分,并且每次在目录中进行任何更改时,您很可能都必须手动运行它/etc/network/interface.d/

通常情况下,你会直接将接口定义添加到/etc/network/interfaces,然后运行rc-service networking restart以应用你的更改(请参阅Alpine 的配置网络请参阅文档。

另一个选择是使用wg-quick管理您的 WireGuard 接口。为此,请将接口的地址添加到您的/etc/wireguard/wg0.conf文件中:

[Interface]
PrivateKey = ABC123...
Address = 10.0.0.4/8
...

然后设置一个OpenRC它的服务,使用如下的初始化脚本/etc/init.d/wg-quick

#!/sbin/openrc-run

description="WireGuard Quick"

depend() {
    need localmount
    need net
}

start() {
    wg-quick up wg0
}

stop() {
    wg-quick down wg0
}

您可以使用rc-service wg-quick startrc-service wg-quick stop命令来启动和关闭此服务;并且您可以使用以下命令在启动时启用它:

rc-update add wg-quick default

相关内容