TL;DR: In Ubuntu 14.04, If you change a static IP address in /etc/network/interfaces
and apply the changes with ifdown
and then ifup
command everything works fine. But this sequence is not working in 16.04. What is the best alternative?
In ubuntu 16.04, after changing interfaces file and ifdown/ifup
sequence, ip addr show <device>
command shows both old and new static IP addresses for <device>
. I used -v
(verbose) argument with ifdown/ifup
in both ubuntu 14.04 and 16.04. The difference was in ifdown. In ubuntu 14.04 ifdown
executes this command:
ip -4 addr flush dev <device> label <device>
While in 16.04:
ip addr del <ip-address-in-network-interfaces>/<subnet> dev <device> label <device>
So I figured out, in 16.04, If I first run the ifdown
command. Then change the IP address in /etc/network/interfaces
file and then use the ifup command to bring the interface up again, the old IP address will be deleted correctly.
Another solution is running the ip addr flush
command before ifdown/ifup
:
ip addr flush dev <device>
It seems that I already answered my question, but I want to know what are the alternatives and what is the best solution to change a static IP address in Ubuntu 16.04?
Best Answer
you can add flush inside interfaces definition like