netplan apply 不会更改 IP 地址

netplan apply 不会更改 IP 地址

好的,我的文件位于 /etc/netplan/50-cloud-init.yaml 我将 IP 地址更改为静态 IP 地址,如下所示:

network:
  version: 2 

  renderer: netwokrd

  ethernets:

    dhcp4: no
    dhcp6: no
    addresses: [10.0.2.100/24]
    gateway4: 10.0.2.1
    nameservers:
       addresses: [10.0.2.100]

然后,我输入了 sudo netplan apply,没有任何错误消息。但是,当我输入 ifconfig 时,它仍然在 enp0s3 上重新发送过去的 IP 地址。你们知道为什么会发生这种情况吗?

答案1

Netplan 对 .yaml 文件的格式要求很严格。不要试图“美化”它们。

50-cloud-init.yaml唯一的 .yaml 文件吗/etc/netplan

因此,编辑你的.yaml 文件使其看起来像这样...

network:
  version: 2 
  renderer: networkd                   # note the correct spelling
  ethernets:
    enp0s3:                            # identify the proper interface
      addresses: [10.0.2.100/24]
      gateway4: 10.0.2.1
      nameservers:
        addresses: [10.0.2.100]        # this is probably the wrong address
        addresses: [8.8.8.8, 8.8.4.4]  # use something like this instead

然后做:

sudo netplan generate          # generate the config files
sudo netplan apply             # apply the new configuration
reboot                         # reboot the computer

并重新检查您的ifconfig输出。

笔记:如果是我,我会让 NetworkManager 管理这个接口,并将静态地址信息设置到“有线连接”配置文件中。

network:
  version: 2
  renderer: NetworkManager

然后做:

sudo netplan generate          # generate the config files
sudo netplan apply             # apply the new configuration
reboot                         # reboot the computer

答案2

你好,我在使用 ubuntu 18.04 时遇到了同样的问题。配置文件应用了对 dhcp 接口和静态 ip 的更改,我必须先以 root 身份执行此步骤(如果不是,则使用 sudo)

  1. ip link 设置 enp0s(x) down
  2. ip addr 添加 xxxx/xxxx dev enp0s(x)。
  3. ip link 设置 enp0s(x) up
  4. 然后在 /etc/netplan/*.yaml 中使用相同的值配置相同的接口

我认为这些步骤是按此顺序进行的,但我不确定,但当然您必须上下移动接口并使用 ip addr 和 netplan 配置文件配置接口。经过几次尝试后,我成功了,重启后一切继续正常工作,我没有丢失任何配置值

答案3

尝试在 Ubuntu 18.04 服务器中设置静态 IP,即使 /etc/netplan 中的 yaml 完全正确,并且多次尝试使用 --debug 和 netplan generate 和 netplan apply 等,也仍然无法成功 - 只能使用 DHCP。

决定比较 /etc/netplan 中的 yaml 和 /etc/systemd/network 中的网络文件 - 网络文件卡在 DHCP 上并且未被更新(它应该更新吗?)。

不管怎样,删除网络文件,运行 netplan generate / netplan apply,然后重启后就可以正常工作了。/etc/systemd/network 中没有生成网络文件。想想吧。

相关内容