Dom*_*ore 8 networking netplan
我有一个界面,我想在启动时调出,否则请保持未配置状态。没有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
Run Code Online (Sandbox Code Playgroud)
这很重要的原因是我有 LXD 容器通过 macvlan 桥接使用该接口,所以接口需要启动,但它不需要(我宁愿没有)主机上的 IP 地址。ip link set up enp10s0f1当我重新启动时,我真的不想记住。
更新:
我在 Netplan 的 Launchpad 中发现了这个看起来相关的错误报告,但据我所知,它适用于相反的情况:告诉 Netplan 配置一个接口,但不要自动启动它。但是,它确实表明我想做的事情也不可能。是这样吗?除了放弃Netplan还有什么解决办法吗?
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: {}
Run Code Online (Sandbox Code Playgroud)
原答案:
这实际上是 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
Run Code Online (Sandbox Code Playgroud)
然后,让它在启动时运行:
sudo systemctl enable manual-iface.service
Run Code Online (Sandbox Code Playgroud)
你很高兴去。enp10s0f1下次启动时,您应该会看到自动出现。
或者,如果您不想这样做,如问题所述,恢复为 ifupdown 仍然是一种选择。回退在此处描述。总而言之,安装 ifupdown,然后您可以使用传统的/etc/network/interfaces(在网络上有详细记录)进行配置。