总结:在 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