Como acessar máquinas na rede local pelo nome (Hostname) usando Avahi e mDNS
Dica publicada em Linux / Redes
Como acessar máquinas na rede local pelo nome (Hostname) usando Avahi e mDNS
Esta dica mostra como usar o Avahi (mDNS) para resolver nomes de máquinas na sua LAN, permitindo que você acesse seus computadores usando apenas
Buscando ajuda com a Gemini, vi que a solução para isso é o protocolo mDNS (Multicast DNS), implementado no Linux pelo Avahi.
Instale o pacote na sua distribuição.
1. Abra o arquivo de configuração de nomes:
2. Procure a linha que começa com
3. Altere essa linha para incluir o mDNS, adicionando
A linha deve ficar exatamente assim (ou bem parecida):
(Nota: O número "4" força a busca via IPv4, o que resolve problemas de lentidão ou falha em redes que não usam IPv6).
Pronto! Agora, de um computador para o outro, basta usar o nome da máquina, pode até adicionar o sufixo
Experimente:
nome-da-maquina.local (ou sem o .local).O Problema
Em redes domésticas, geralmente não temos um servidor DNS local para traduzir o nome do computador (hostname) para o seu endereço IP. O resultado é que você consegue conectar usandossh usuario@192.168.1.50, mas falha ao tentar ssh usuario@meu-pc.Buscando ajuda com a Gemini, vi que a solução para isso é o protocolo mDNS (Multicast DNS), implementado no Linux pelo Avahi.
Passo 1: Garantir que o Avahi está rodando
A maioria das distribuições modernas já traz oavahi-daemon instalado. Certifique-se de que ele está ativo nas duas máquinas que vão se comunicar:sudo systemctl enable --now avahi-daemon
Passo 2: Instalar o nss-mdns
Mesmo com o Avahi rodando, o sistema operacional pode não saber que deve usá-lo para procurar nomes. Para criar essa ponte, você precisa do plugin nss-mdns.Instale o pacote na sua distribuição.
- No Gentoo:
sudo emerge -av sys-auth/nss-mdns - No Debian/Ubuntu/Mint:
sudo apt install libnss-mdns - No Arch Linux:
sudo pacman -S nss-mdns - No Fedora:
sudo dnf install nss-mdns
Passo 3: Configurar o nsswitch.conf
Agora precisamos dizer ao sistema para usar o plugin que acabamos de instalar quando for procurar por hosts.1. Abra o arquivo de configuração de nomes:
sudo nano /etc/nsswitch.conf
2. Procure a linha que começa com
hosts:. Ela geralmente se parece com hosts: files dns.
3. Altere essa linha para incluir o mDNS, adicionando
mdns4_minimal [NOTFOUND=return] logo após files.
A linha deve ficar exatamente assim (ou bem parecida):
hosts: files mdns4_minimal [NOTFOUND=return] dns
(Nota: O número "4" força a busca via IPv4, o que resolve problemas de lentidão ou falha em redes que não usam IPv6).
Passo 4: Reiniciar o serviço e testar
Reinicie o serviço do Avahi para aplicar todas as mudanças:sudo systemctl restart avahi-daemon
Pronto! Agora, de um computador para o outro, basta usar o nome da máquina, pode até adicionar o sufixo
.local ao nome da máquina. Mas aqui não foi necessário.
Experimente:
ping nome-do-outro-pc.local (ou sem .local)
ssh usuario@nome-do-outro-pc.local (ou sem .local)