在 Ubuntu 16.04 中的 /etc/network/interfaces 中应用静态 IP 地址更改

在 Ubuntu 16.04 中的 /etc/network/interfaces 中应用静态 IP 地址更改

总结:在 Ubuntu 14.04 中,如果您更改静态 IP 地址/etc/network/interfaces并使用命令应用更改ifdown,则ifup一切正常。但此序列在 16.04 中不起作用。最好的替代方案是什么?

在 ubuntu 16.04 中,更改接口文件和ifdown/ifup序列后,ip addr show <device>命令显示旧的和新的静态 IP 地址<device>。我在 ubuntu 14.04 和 16.04 中都使用了-v(详细) 参数ifdown/ifup。区别在于 ifdown。在 ubuntu 14.04 中ifdown执行此命令:

ip -4 addr flush dev <device> label <device>

而在 16.04 中:

ip addr del <ip-address-in-network-interfaces>/<subnet> dev <device> label <device>

所以我发现,在 16.04 中,如果我首先运行该ifdown命令。然后更改文件中的 IP 地址/etc/network/interfaces,然后使用 ifup 命令重新启动接口,则旧 IP 地址将被正确删除。

另一个解决方案是运行ip addr flush以​​下命令ifdown/ifup

ip addr flush dev <device>

似乎我已经回答了我的问题,但我想知道有哪些替代方案以及在 Ubuntu 16.04 中更改静态 IP 地址的最佳解决方案是什么?

答案1

您可以添加 flush 内部接口定义,例如

iface eth0 inet 手动
post-down ip addr flush dev $IFACE

相关内容