Ubuntu 18.04 使用 NetPlan 的静态 IP 需要重启

Ubuntu 18.04 使用 NetPlan 的静态 IP 需要重启

我需要为 OVA 提供静态 IP。

我正在使用干净的 Ubuntu 18.04 映像并在虚拟盒和 vmware 上运行(测试)。

当我在 yaml 文件中配置 IP 地址并运行命令时:

sudo netplan apply  

没有什么变化。

仅当我重新启动机器时,IP 地址才会改变。

这是我的 yaml 里面的内容:

network:
  version: 2 
  renderer:
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [10.0.2.100/24]
      gateway4: 10.0.2.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

通常,Linux 不需要重新启动。请帮帮我。

@heynnema

答案1

我的机器也遇到了同样的问题。这是 的问题renderer,据记录,Ubuntu 服务器应该自带networkd,但在我的计算机(Ubuntu Server 18.04)中安装的网络管理器是 ,network-manager所以我将 更改为rendererNetworkManager它又开始工作了。

您可以network-manager通过 检查是否已安装sudo service network-manager status

我还是不知道为什么network-manager安装的是 而不是networkd但至少它现在对我来说是有效的。

答案2

在您的 .yaml 文件中,您缺少渲染器定义。它应该显示:

renderer: networkd

看看该ip命令是否有帮助......

启动或关闭接口

以前用户习惯使用 ifconfig 命令。现在用户应该熟悉更强大的ip命令。现在可以通过该命令手动修改网络设备ip

举个例子来启动一个接口然后关闭它:

ip link set enp0s3 up
ip link set enp0s3 down

有关如何操作路由、网络设备、接口和隧道状态的更多信息,请参阅“man ip”。

来源:https://netplan.io/faq

答案3

检查 /etc/netplan/ 目录中的 yaml 文件是否在文件名其余部分前面有最高数字。最高数字最后处理,并覆盖任何先前的配置。例如,将首先处理 50-cloud-config.yaml,然后处理 60-my-new-config.yaml。如果 60-my-new-config.yaml 重新配置了先前文件中列出的设备,则将应用后续配置。

还要注意,如果您在较早的文件中配置了设备,但没有在较新的文件中重新配置它,那么原始设备仍将存在。这可能会与您分配静态 IP 的尝试发生冲突(例如,设备 enp0s3 之前在桥接或绑定中被引用,因此无法应用新配置)。

要检查错误,请使用“--debug”(两个破折号而不是一个,如注释中所示)运行生成命令:

sudo netplan --debug generate

如果脚本有问题,它会被列出来供您更正。否则,运行 apply 不会产生任何变化(尽管您的脚本看起来不错 - 如果没有指定其他内容,则默认渲染器为“networkd”)。

然后使用 try 命令应用,如果有错误则回滚:

sudo netplan --debug try

使用 networkctl 和/或 ip 命令检查结果来查看您得到了什么。

sudo networkctl status enp0s3
sudo ip address show enp0s3

相关内容