você pode adicionar uma definição interna de interfaces como
iface eth0 inet manual
post-down ip addr liberar dev $ IFACE
TL; DR: No Ubuntu 14.04, se você alterar um endereço IP estático em /etc/network/interfaces e aplicar as alterações com o comando ifdown e, em seguida, ifup , tudo funcionará corretamente. Mas esta sequência não está funcionando em 16.04. Qual é a melhor alternativa?
No Ubuntu 16.04, depois de alterar o arquivo de interfaces e ifdown/ifup sequence, o comando ip addr show <device> mostra endereços IP estáticos antigos e novos para <device> . Eu usei o argumento -v (verbose) com ifdown/ifup no ubuntu 14.04 e 16.04. A diferença estava em ifdown. No Ubuntu 14.04 ifdown executa este comando:
ip -4 addr flush dev <device> label <device>
Enquanto em 16.04:
ip addr del <ip-address-in-network-interfaces>/<subnet> dev <device> label <device>
Então eu descobri, em 16.04, se eu primeiro executar o comando ifdown . Em seguida, altere o endereço IP no arquivo /etc/network/interfaces e, em seguida, use o comando ifup para reativar a interface, o endereço IP antigo será excluído corretamente.
Outra solução é executar o comando ip addr flush antes de ifdown/ifup :
ip addr flush dev <device>
Parece que já respondi a minha pergunta, mas quero saber quais são as alternativas e qual é a melhor solução para alterar um endereço IP estático no Ubuntu 16.04?
você pode adicionar uma definição interna de interfaces como
iface eth0 inet manual
post-down ip addr liberar dev $ IFACE
Tags networking ip ifconfig static-ip