Como os computadores unix podem se encontrar pelo hostname?

5

Eu tenho uma rede doméstica com várias janelas e máquinas Linux que possuem o samba instalado.

No Windows, posso encontrar um ao outro bem por meio de seu nome de host.

no entanto, em um computador Linux, não consigo encontrar nenhum outro computador por meio de seu nome de host - apenas o endereço IP funciona.

Na verdade, parece que o Linux não pode se resolver sozinho:

user@atom:~$ host atom
Host atom not found: 3(NXDOMAIN)
    
por clamp 08.08.2014 / 16:44

3 respostas

2

O Windows usa um sistema diferente para resolução de nomes de host para o Linux.

O Linux usa o arquivo /etc/hosts e / ou DNS para resolução de nomes

O arquivo /etc/hosts é simplesmente uma lista de endereços IP e nomes e já foi a única maneira de mapear nomes para endereços IP antes que fosse percebido que estava ficando grande para gerenciar. A solução era o DNS ( Sistema de Nomes de Domínio ), que é um banco de dados distribuído que agora sustenta toda a Internet.

O comando host que você usou apenas consulta o DNS - não é /etc/hosts , portanto não pode localizar seu computador local a menos que tenha uma entrada de DNS.

Para acessar todas as suas máquinas Linux pelo nome, crie um arquivo /etc/hosts :

127.0.0.1    localhost.localdomain    localhost
192.168.0.5  laptop.mydomain.net  laptop
192.168.0.6  server.mydomain.net  server
192.168.0.7  printer.mydomain.net printer

e distribua-o para todo o seu computador Linux ou instale o DNS. dnsmasq é um servidor DNS / DHCP leve, perfeito para uma rede pequena.

O Windows usa sua própria Resolução de nomes NetBIOS , em que cada computador transmite uma mensagem especial na rede local a fim de descobrir o endereço IP de um computador com um nome específico. É por isso que as máquinas Windows tendem a se encontrar automaticamente quando estão na mesma rede. Eles armazenam em cache para uso futuro, para que não haja muita conversa na rede.

Uma alternativa a essa resolução de nomes de transmissão (para implantações maiores) é o WINS ( Serviço de cadastramento na Internet do Windows ), que é um banco de dados central de nomes de computadores e / ou serviços para o endereço IP. As versões modernas do Windows agora usam o DNS, pois ele é o padrão de fato para a resolução de nomes e é mais escalável que o WINS.

    
por 08.08.2014 / 17:22
1

Computadores com Windows encontram um ao outro usando o NetBIOS. Basicamente, todos os nós na rede elegem um computador para ser responsável pela resolução de nomes, e novos nós podem apenas consultar este nó.

O seu comando host deverá falhar se você não tiver um servidor DNS configurado. Isso é o equivalente de nslookup no Windows. Se você executar nslookup em um computador Windows para outro computador com Windows, ele também falhará sem o DNS, porque é isso que você está consultando com o comando escolhido.

Dito isso, você deve poder fazer referência às outras máquinas pelo endereço IP ou ao adicionar seus endereços IP a /etc/hosts . O IIRC Gnome tem algumas opções de integração do Samba para permitir que você navegue em um grupo de trabalho SMB similar ao que você provavelmente está pensando com o Windows. Não consigo lembrar o nome do pacote do topo da minha cabeça, no entanto.

    
por 08.08.2014 / 17:13
1

Se você não tem um servidor DNS em casa, o que é improvável, parece haver algumas opções.

  1. Leia o avahi-server (veja este tópico ) para ver se resolve seus problemas. Observe o comentário sobre o acréscimo de ".local" ao seu nome de host. By the way, o que você ganha quando você digita "hostname" no prompt de comando? Eu também sugiro ler a manpage para hostname, esp. a parte sobre o FQDN.
  2. editar /etc/hosts

EDIT: como o comentarista solicitou, aqui estão alguns detalhes do segmento que eu vinculei. Você pode implementar o zeroconf em suas máquinas linux para anunciar seus nomes de host pela rede local. Uma instalação típica (para o Ubuntu) seria "sudo apt-get install avahi-daemon". O Avahi implementa o zeroconf no Ubuntu e em outros linuxes e você só precisa do daemon instalado para anunciar nomes de host. Eu li em outro tópico aqui ( link ) que Bonjour, uma implementação zeroconf da Apple, pode ser instalada no Windows PC para executar a mesma função.

    
por 08.08.2014 / 17:06