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

Moh*_*mad 6 networking ifconfig ip static-ip

TL;DR:在 Ubuntu 14.04 中,如果您更改静态 IP 地址/etc/network/interfaces并应用更改,ifdown然后ifup命令一切正常。但是这个序列在 16.04 中不起作用。什么是最好的选择?

在 ubuntu 16.04 中,更改接口文件和ifdown/ifup序列后,ip addr show <device>命令会显示<device>. 我在 ubuntu 14.04 和 16.04 中都使用了-v(详细)参数ifdown/ifup。不同之处在于 ifdown。在 ubuntu 14.04 中ifdown执行这个命令:

ip -4 addr flush dev <device> label <device>
Run Code Online (Sandbox Code Playgroud)

在 16.04 中:

ip addr del <ip-address-in-network-interfaces>/<subnet> dev <device> label <device>
Run Code Online (Sandbox Code Playgroud)

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

另一个解决方案是在ip addr flush之前运行命令ifdown/ifup

ip addr flush dev <device>
Run Code Online (Sandbox Code Playgroud)

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

小智 0

您可以在接口定义中添加刷新,例如

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