Como posso usar nomes de host .local no Arch Linux?

18

Se eu estiver usando o Ubuntu ou o Linux Mint (os únicos dois sabores que tentei e sei que funcionam com certeza), posso executar algo assim:

wayne@myhost$ ssh [email protected]

E o nome é automaticamente resolvido para qualquer IP de outro host na minha rede local.

Eu decidi começar a ramificar em outras distros, e tenho o Arch rodando no meu laptop - mas se eu tentar usar o comando anterior eu recebo Could not resolve hostname otherhost.local: Name or service not known

O que é necessário para que esse tipo de resolução automática de nomes (?) ocorra?

    
por Wayne Werner 23.07.2012 / 16:10

3 respostas

14

A resposta do próprio Wayne já é bastante antiga. Arch, desde então, passou a usar o systemd em vez de scripts init. A página Avahi do wiki do Arch foi atualizada e contém detalhes sobre por que as etapas abaixo são necessárias. Resumindo: Avahi é uma ferramenta zeroconf, o que significa que não precisa de configuração para funcionar uma vez instalado em todas as máquinas da sua LAN, mas você deve configurar o resto do seu software para que ele realmente solicite informações à Avahi.

Execute-os como root ou adicione com sudo , quando apropriado, em um terminal e substitua nano pelo editor de sua escolha.

  1. pacman -S avahi nss-mdns Instala o daemon de serviços Avahi e o resolvedor de DNS de multidifusão.
  2. nano /etc/nsswitch.conf Este arquivo informa à biblioteca C como obter informações sobre o serviço de nomes.
  3. Altere a linha hosts: files dns myhostname para hosts: files mdns_minimal [NOTFOUND=return] dns myhostname , salve e saia.
  4. systemctl start avahi-daemon Inicia o serviço Avahi manualmente, pois já estamos inicializando.look para erros)
  5. systemctl enable avahi-daemon Habilita o serviço Avahi na inicialização.

Eu apenas executei estas etapas em um laptop Arch e não houve necessidade de reiniciar outros serviços ou a interface Wi-Fi para que minhas outras máquinas o descobrissem em poucos segundos e fiz com que meu laptop descobrisse seus serviços.

Como não posso comentar a resposta do ggg ainda, gostaria apenas de salientar aqui que não há necessidade de fazer isso em um script de inicialização - é isso que habilita o serviço no systemd. Faça uma vez e esqueça.

    
por 23.07.2014 / 02:13
11

Graças ao apontador para o artigo Arch Wiki sobre o Avahi de Ulrich Dangel, foi o que eu fiz:

  1. Instalar o avahi e o nss-mdns $ sudo pacman -S avahi nss-mdns
  2. Adicione /etc/rc.d/avahi-daemon start ao final de rc.local
  3. Como estou executando dhcpcd , em /etc/dhcpcd.conf , comentei a linha noipv4ll .
  4. também corri $ sudo /usr/sbin/avahi-autopid -D wlan0 . Como não gosto de reiniciar, não tenho certeza se o passo 3 foi necessário.
  5. Em /etc/nsswitch.conf , defino a linha para ler hosts: files mdns4_minimal dns mdns4 .
  6. Em seguida, executei $ sudo /etc/rc.d/dbus restart para reiniciar o dbus.

Depois disso, simplesmente fazendo ssh [email protected] apenas funcionou.

    
por 23.07.2012 / 17:15
2

Acho que não precisamos de avahi-daemon em execução para usar .local . Aqui está o que eu tenho para o meu script de inicialização. Isso é muito mais simples comparado ao método do Arch Wiki.

systemctl enable avahi-daemon
avahi-set-host-name $(hostname)
systemctl disable avahi-daemon
    
por 29.11.2012 / 12:44