Arn*_*i J 7 network-manager networking netplan 18.04
我想在 LXD 容器中的 shell 脚本中弄清楚该容器是否由 Netplan 管理。这可能有点未知,因为我混合了 16.04 系统、18.04 系统和升级的 18.04 系统。
为了将正确的网络配置写入容器,我需要检测配置是/etc/network/interfaces在 Netplan yaml 文件中还是在 Netplan yaml 文件中是静态的。
我真的可以使用类似的东西,netplan status但由于该命令不存在,我需要替代方案。
我问了很多,似乎没有正式的方法。到目前为止我的建议:
cat /etc/network/interfaces并在那里查找 Netplan 信息消息。我不喜欢这种方法,因为这显然容易损坏。您可以从 ifupdown 中检查ifstate文件,它会告诉您这是否用于配置网络:
/run/network/ifstate
Run Code Online (Sandbox Code Playgroud)
如果它在那里并且包含文本,您可以预期 ifupdown 正在使用中。如果它不存在,则系统可能是通过 netplan 管理的(但这不会告诉您它是 NetworkManager 还是 systemd)
然后,如果您想知道特定接口使用什么后端,您可以询问 netplan,并解析输出以获得您需要的信息:
netplan generate --mapping enp3s0
Run Code Online (Sandbox Code Playgroud)
它输出这样的文本:
id=enp3s0, backend=NetworkManager, set_name=(null), match_name=enp3s0, match_mac=(null), match_driver=(null)
Run Code Online (Sandbox Code Playgroud)
这样,您还可以知道使用接口配置的匹配规则(您使用接口的“最终”名称来检查映射,它会告诉您与它匹配的 netplan YAML 中的匹配规则是什么)。
| 归档时间: |
|
| 查看次数: |
8094 次 |
| 最近记录: |