ifconfig
é essencialmente obsoleto, embora não haja planos de que eu saiba livrar-se dele. A substituição é o comando ip
. O equivalente moderno de ifconfig
por si só é ip address list
.
Por que ifconfig
foi substituído por ip
? Muitas novas funcionalidades foram adicionadas à rede Linux nas décadas desde que o ifconfig
foi escrito. Isso envolveu uma API totalmente nova (netlink) para que a ferramenta userspace fale com o kernel para configurar a rede. Foi muito mais prático escrever uma nova ferramenta para mapear melhor a nova funcionalidade através da API do netlink e até a linha de comando, do que tentar adaptar a antiga ferramenta ifconfig
. Confira o ip (8) manpage para todas as coisas legais que você pode fazer agora.
A API do kernel usada por ifconfig
e a ferramenta ifconfig
permanece para compatibilidade com versões anteriores, mas essa interface é cega para qualquer coisa que não seja facilmente mapeada para o modelo antigo.
O motivo pelo qual ifconfig
não mostra os aliases de IP é que eles parecem estar sendo adicionados pelo ifupdown
do Debian (o pacote que manipula /etc/network/interfaces
) usando um mecanismo diferente que não adiciona os rótulos :1
, :2
, etc. Portanto, a ferramenta ifconfig
é cega para eles, pois a API antiga determinava esses rótulos e, portanto, os endereços extras não são mapeados para a API antiga. A partir do endereço de IP (8) manpage :
Each address may be tagged with a label string. In order to
preserve compatibility with Linux-2.0 net aliases, this string
must coincide with the name of the device or must be prefixed
with the device name followed by colon.
Os bugs ligados na resposta do maggotbrain parecem estar focados em adicionar suporte a ifconfig
para ler endereços sem rótulos. Outra abordagem pode ser organizar ifupdown
para criar os endereços com rótulos, de modo que ifconfig
consiga vê-los sem modificações.