我已经在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 start
和rc-service wg-quick stop
命令来启动和关闭此服务;并且您可以使用以下命令在启动时启用它:
rc-update add wg-quick default