在 22.04 中临时向接口添加多个 IP 地址

在 22.04 中临时向接口添加多个 IP 地址

我需要暂时动态地netplan.conf从( )中添加和删除 IP 地址/etc/netplan/myNetplanConfig.conf

在早期版本中,该ip命令可用于临时将 IP 地址添加到接口,但我似乎无法在 Ubuntu 22.04 中找到它的替代品,并且在人网络计划netplan 文档

我曾考虑过netplan.conf用 bash 来生成,但我希望有一个更干净的解决方案。

#!/bin/bash

# Update the netplan configuration file
cat << EOF > /etc/netplan/myNetplanConf.yaml
network:
  ethernets:
    # 1st network interface
    eth0:
      dhcp4: false
      addresses: [192.168.1.10/24]
  version: 2
EOF

# Apply the changes to the network configuration
sudo netplan apply

使用当前解决方案意味着添加 IP 地址静态地(他们将居住超过单个启动周期)并且netplan.conf每次添加或删除 IP 地址时都必须应用。

netplan.conf另一个解决方案是使用命令添加 IP 地址sed

# Search for the existing ip addresses (.10) in the interface eth0 and append the new ip addresses (.11 .12 ...) to the list.
sed -i '/eth0/,/^\s*$/{/\s*addresses:\s*\[.*192\.168\.1\.(10).*\]/{s//&, 192.168.1.11, 192.168.1.12/}}' /etc/netplan/myNetplanConf.conf

# Apply the changes to the network configuration
sudo netplan apply

...并使用相同方法将其移除。

# Search for the ip addresses (.11 and .12) in the interface eth0 and delete the corresponding entries from the netplan.conf file.
sed -i '/eth0/,/^\s*$/{/\s*addresses:\s*\[.*192\.168\.1\.(11|12).*\]/d}' /etc/netplan/myNetplanConf.conf

# Apply the changes to the network configuration
sudo netplan apply
  • 为什么该ip命令不能用于netplan
  • 有没有更好的解决方案来添加/删除 IP 地址netplan
  • ...还是说我已经完全偏离路径了?

答案1

该命令在 Ubuntu 22.04 中仍然存在。它是作为 的一部分默认安装的软件包ip的一部分。iproute2ubuntu-minimal

您不需要通过 来推送网络状态的临时更改netplan,因为它毕竟是一个配置工具。

答案2

使用 netplan 时,更改 netplan yaml 最有意义...

有一个很好的工具用于处理 yaml 叫做yq。至少添加 IP 很简单。

yq e '.network.ethernets.enp2s0.addresses += ["11.11.11.11/24" ]' network.yaml > new.yaml

删除看起来像

yq e '.network.ethernets.enp2s0.addresses -= ["11.11.11.11/24" ]' network.yaml > new.yaml

无论如何都必须netplan apply要做。

相关内容