{
"meta": {
"title": "Nomes de interface persistentes | Documentação ProxMenux",
"description": "Associe os nomes das interfaces Proxmox (eno1, enp3s0, …) aos endereços MAC através de ficheiros .link do systemd para os manter após a reenumeração PCI, atualizações do kernel e adição ou remoção de outras placas de rede.",
"ogTitle": "Nomes de interface persistentes | Documentação ProxMenux",
"ogDescription": "Impeça que os nomes das interfaces Proxmox mudem quando altera o hardware. Usa ficheiros .link do systemd associados ao endereço MAC."
},
"header": {
"title": "Nomes de interface persistentes",
"description": "Gera um ficheiro .link do systemd por placa de rede física para associar o nome atribuído pelo kernel ao endereço MAC da placa. Após a aplicação no próximo reinício, os nomes das interfaces mantêm-se estáveis ao adicionar, remover ou mudar placas PCIe de lugar.",
"section": "Rede"
},
"intro": {
"title": "O que isto faz",
"body": "Para cada NIC físico no host, escreve um pequeno arquivo sob /etc/systemd/network/10-<iface>.link que diz: \"o dispositivo com este MAC deve ser sempre chamado este nome\". systemd-udevd aplica a regra em cada inicialização, antes que ifupdown leia /etc/network/interfaces."
},
"problem": {
"heading": "O problema que isto resolve",
"intro": "O Linux deriva os nomes predefinidos das interfaces da topologia PCI — eno1 = integrada na placa principal, enp3s0 = placa no barramento PCI 3, slot 0, etc. O esquema de nomes é determinístico para a mesma disposição de hardware. Se a disposição mudar, os nomes mudam:",
"items": [
"Adicione um GPU na frente de um NIC existente → o número de barramento NIC pode mudar → alterações de nome.",
"Mudar uma placa para outro slot PCIe → o nome muda.",
"BIOS / UEFI atualização que re-enumera dispositivos → nomes podem mudar.",
"Substituir uma placa avariada pelo mesmo modelo noutro slot → o nome muda."
],
"outro": "Após uma alteração destas, /etc/network/interfaces continua a referir o nome antigo; o bridge não se ativa e o host perde a rede. Configurar nomes persistentes impede que este cenário se repita."
},
"howWorks": {
"heading": "Como funciona",
"arrowLabel": "por NIC",
"nodes": {
"detectLabel": "Detetar placas de rede físicas",
"detectDetail": "ls /sys/class/net/\nexcluir vmbr / bond /\ndocker / veth / wireguard …",
"readLabel": "Ler cada MAC",
"readDetail": "cat /sys/class/net/\n '<'iface'>'/address",
"writeLabel": "Gravar o ficheiro .link",
"writeDetail": "/etc/systemd/network/\n 10-'<'iface'>'.link"
},
"minimalIntro": "Cada arquivo gerado é intencionalmente mínimo:",
"minimalOutro": "No arranque, o systemd-udevd identifica o dispositivo pelo MAC e atribui o nome pedido antes da intervenção de outros componentes (ifupdown, nomes predefinidos do kernel). O prefixo 10- garante que estas regras carregam cedo, antes do ficheiro predefinido 99-default.link."
},
"scope": {
"heading": "O que é escrito, o que é ignorado",
"headerType": "Tipo",
"headerBehaviour": "Comportamento",
"headerWhy": "Porquê?",
"rows": [
{
"type": "Placa de rede integrada / PCIe",
"behaviour": "Arquivo .link escrito",
"why": "Apoiado por um dispositivo PCI real — o caso em que a ferramenta se destina"
},
{
"type": "Wi-Fi (phy80211)",
"behaviour": "Arquivo .link escrito",
"why": "Tem um MAC real e beneficia da estabilidade do nome"
},
{
"type": "Pontes (vmbrX)",
"behaviour": "Ignorado",
"why": "Virtual; o nome vem do /etc/network/interfaces"
},
{
"type": "Bonds (bondX)",
"behaviour": "Ignorado",
"why": "Virtual; o nome do bond é definido pelo ifupdown"
},
{
"type": "veth / docker0 / br-XXXX",
"behaviour": "Ignorado",
"why": "Criados a pedido pelo Docker / LXC — não são hardware persistente"
},
{
"type": "tap / fwpr / fwln",
"behaviour": "Ignorado",
"why": "Criados a pedido pelo Proxmox para cada VM/CT"
},
{
"type": "WireGuard / Cilium / Tailscale",
"behaviour": "Ignorado",
"why": "Interfaces de software gerenciadas por seus próprios daemons"
}
]
},
"safety": {
"heading": "Proteção: são criadas cópias de segurança dos ficheiros .link anteriores",
"intro": "Se /etc/systemd/network/ já contiver ficheiros .link de uma execução anterior ou de outra ferramenta, são copiados para um diretório de segurança com data e hora antes de gerar os novos:",
"outro": "Para voltar atrás: copie os arquivos de volta do diretório de backup e reinicie.",
"rebootTitle": "Faz efeito na próxima reinicialização, não imediatamente",
"rebootBody": "Alterações nos arquivos .link só se aplicam no arranque, quando o udev re-enumera dispositivos. A ferramenta informa que \"Alterações serão aplicadas após reiniciar\" por esta razão. Renomear uma interface ao vivo é arriscado e não tentado: um vmbr0 ativo com membros teria que ser reconfigurado atomicamente, por isso a operação é adiada para a próxima inicialização limpa."
},
"afterReboot": {
"heading": "Após a reinicialização",
"intro": "Uma vez que os nomes são fixados, o fluxo de trabalho para futuras mudanças de hardware é simples:",
"items": [
"Desligue, altere o hardware (adicione uma placa, mude de slot, …) e ligue novamente.",
"Cada NIC mantém seu nome anterior porque seu MAC corresponde a um arquivo .link.",
"Se um NIC é substituído (MAC diferente), ele recebe um nome padrão do kernel (enp<bus>s<slot>); execute novamente este menu para adicionar uma entrada .link para o MAC do novo cartão."
]
},
"troubleshoot": {
"heading": "Resolução de Problemas",
"emptyTitle": "\"Nenhuma interface física encontrada\" após executar a ferramenta",
"emptyBody": "O kernel não vê interfaces baseadas em PCI / phy80211 no host. Confirme com ls -l /sys/class/net/ — cada entrada deve ter uma ligação simbólica device (PCI) ou uma entrada phy80211 (Wi-Fi). Se ambas faltarem numa placa de rede real, o controlador não está carregado.",
"noChangeTitle": "Após a reinicialização, os nomes não mudaram como esperado",
"noChangeBody": "Verifique se o arquivo está presente e bem formado: cat /etc/systemd/network/10-<iface>.link. Em seguida, verifique registros udev: journalctl -u systemd-udevd -b | grep -i link. Uma causa comum é um parâmetro antigo do kernel net.ifnames=0 que desativa inteiramente a nomeação previsível — remova-a do /etc/default/grub, execute o update-grub, reinicie.",
"undoTitle": "Quero anular os nomes persistentes",
"undoBody": "Ou delete os arquivos .link (rm /etc/systemd/network/10-*.link) ou restaure do diretório de backup gerado na execução anterior. Reiniciar para aplicar."
},
"related": {
"heading": "Relacionado",
"items": [
{
"label": "Análise de ponte e reparo guiado",
"href": "/docs/network/bridge-analysis",
"tailRich": " — o caminho de recuperação quando os nomes já mudaram."
},
{
"label": "Análise de configuração e limpeza guiada",
"href": "/docs/network/config-analysis",
"tail": " — para remover blocos órfãos deixados pelas mudanças de nomes."
},
{
"label": "Diagnósticos",
"href": "/docs/network/diagnostics",
"tailRich": " — confirme os novos nomes com Mostrar tabela de roteamento após reiniciar."
}
]
}
}