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