好的,我的文件位于 /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)
- ip link 设置 enp0s(x) down
- ip addr 添加 xxxx/xxxx dev enp0s(x)。
- ip link 设置 enp0s(x) up
- 然后在 /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 中没有生成网络文件。想想吧。