我有一个接口,我想在启动时调出它,但除此之外没有配置。没有 DHCP,没有静态 IP。有没有办法在 18.04 中使用 Netplan 来实现这一点?
我尝试了以下操作(enp10s0f1
有问题的设备在哪里)但界面仍然无法打开:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp10s0f0:
dhcp4: yes
enp10s0f1:
dhcp4: no
这很重要,因为我有 LXD 容器通过 macvlan 桥接使用该接口,因此接口需要启动,但它不需要(我宁愿没有)主机上的 IP 地址。我真的不希望记住ip link set up enp10s0f1
何时重新启动。
更新:
我发现此错误报告在 Netplan 的 Launchpad 中,这看起来是相关的,但据我所知,它适用于相反的情况:告诉 Netplan 配置一个接口,但不自动启动它。然而,它确实暗示我想要做的事情目前还不可能。是这样吗?除了放弃 Netplan 之外,还有其他解决方法吗?
答案1
编辑,2019 年中: 导致该问题的错误已被修复。
修复此错误后,现在可以通过添加空配置来启动一个没有地址的接口:{}
。
使用问题中的例子,执行此操作enp10s0f1
将如下所示:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp10s0f0:
dhcp4: yes
enp10s0f1: {}
原始答案:
这实际上是 Netplan 的一个错误:错误 #1728134,错误 #1763608。其中一位 netplan 开发人员已经承认了后者,但目前尚不清楚是否会提供修复程序。
一种解决方法是手动创建一个 systemd 单元来启动接口。创建一个/etc/systemd/system/manual-iface.service
包含以下内容的文件:
[Unit]
Description=Service to bring up/down unconfigured nic enp10s0f1
After=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ip link set enp10s0f1 up
ExecStop=/sbin/ip link set enp10s0f1 down
[Install]
WantedBy=multi-user.target
然后,使其在启动时运行:
sudo systemctl enable manual-iface.service
现在一切就绪。enp10s0f1
下次启动时,您应该会看到它自动出现。
或者,如果你不想这样做,恢复到 ifupdown 仍然是一个选项,正如问题所述。回退描述如下这里。总而言之,安装 ifupdown,然后您可以使用传统方式/etc/network/interfaces
(在网上有详细记录)进行配置。
答案2
作为一种解决方法,如果只需要 IPv4 地址,则可以通过 DHCP 配置 IPv6,从而自动启用接口:
# cat /etc/netplan/10-eth1.yaml
network:
version: 2
renderer: networkd
ethernets:
eth1:
dhcp4: false
dhcp6: true
optional: true