Conecte-se ao Linux pelo nome em vez de pelo IP

14

Sou novo no Linux (atualmente executando o Ubuntu 10.04) e acabei de configurar o acesso SSH à minha máquina Linux. Atualmente, tenho que usar ssh [email protected] para se conectar, mas prefiro poder trocar o IP pelo nome do computador (como no Windows com \name ) ou um nome de domínio (como computername.example.com ).

Eu realmente não sei por onde começar, então qualquer ajuda seria muito apreciada. Por favor, vá devagar, como mencionado - eu ainda sou novo nisso.

EDIT 1

Esqueci completamente de mencionar que estou tentando conectar-me a partir do Windows 7 (via PuTTY) - desculpe.

    
por Ryall 07.09.2010 / 17:36

6 respostas

31

Protocolos de descoberta de LAN com configuração zero, em ordem de preferência:

  • mDNS
    • Usado principalmente por produtos da Apple e alguns programas do Linux, mas também disponível para o Windows e possivelmente outras plataformas; usa multicast IP.
    • Fornece pesquisa de nome e descoberta de serviço.
    • Os nomes dos hosts estão sempre no formato name.local .
    • Software:
      • Bonjour no Windows;
      • Avahi com nss_mdns no Linux;
      • suportados nativamente no OS X e no iOS (e, supostamente, Android).
  • LLMNR
    • Usado para resolução de nomes pelo Windows Vista e superior, como alternativa moderna aos serviços de nomes NetBIOS.
    • Muito semelhante ao mDNS, mas possui menos recursos - em particular, não possui descoberta de serviços (o Windows usa o protocolo WS-Discovery para isso).
    • Usa nomes de host nus (como o NBNS, mas diferente do mDNS).
    • Software:
      • Compatível com o Windows Vista e acima;
      • systemd-resolved com nss_resolve (parte do systemd 216) no Linux.
  • Serviços de nome NetBIOS
    • Parte do antigo conjunto de protocolos de rede NetBIOS usado pelo Windows, OS / 2, MS-DOS ... Ainda em uso. Não é uma desculpa para começar a usá-lo em novas redes.
    • Fornece a resolução de nomes e (até certo ponto) a descoberta de serviços - também conhecida como "Vizinhança na rede" ou "Meus locais de rede" no Windows.
    • Usa transmissões IPv4 (um pouco tagarela) e tem seu próprio protocolo complexo e estúpido de "eleição do navegador" para reduzir o caos. Não há suporte para IPv6.
    • Software:
      • Nativamente suportado no Windows e no OS / 2;
      • nmbd com nss_wins (parte do Samba ) no Linux e no BSD;
      • Aparentemente, o OS X também suporta nativamente?

Métodos que são frequentemente pré-configurados para você:

  • DNS usando um nome de domínio local (interno)
    • Os gateways domésticos costumam ter esse recurso interno, como parte do cache DNS local. Geralmente é apenas dnsmasq regular, que você pode executar manualmente se estiver configurando um gateway baseado em Linux / BSD.
    • Eles pegam o nome do host da sua solicitação DHCP, registram-no em dnsmasq em um domínio como home e se oferecem como o servidor DNS principal (funcionam como cache DNS).
    • Funciona por padrão com a maioria dos sistemas operacionais, mas apenas com o DHCP (o gateway não conhece nomes de host de hosts IP estáticos) e geralmente tende a ser bastante esquisito na minha experiência.
    • Software:
      • Um cliente DHCP regular nos hosts. Deve enviar a opção hostname.
      • dnsmasq no gateway. (Configurações maiores podem usar dhcpd + named .)

Métodos envolvendo configuração manual:

  • DNS usando seu próprio nome de domínio
    • Funciona em todos os lugares. (Não vai ajudá-lo a conectar através da Internet, no entanto.)
    • DNS dinâmico possível se você usar o DHCP e controlar um servidor DNS; caso contrário, todos os dados são estáticos.
    • É necessário possuir um nome de domínio (que custará alguns dólares).
  • subdomínios DNS gratuitos
    • Ainda DNS, apenas gratuito (ou muito mais barato que um domínio), mas também bastante limitado. Serviços como FreeDNS e Dyn oferecem registro de subdomínios individuais sob < href="http://freedns.afraid.org/domain/registry/"> um domínio que eles controlam (por exemplo, myhost.dyndns.com ).
      • Com muita frequência, o subdomínio já foi escolhido por outra pessoa ...
    • Atualizações de DNS dinâmicas geralmente são permitidas (estilo DynDNS).
  • /etc/hosts
    • Um arquivo de texto que lista os pares de endereços IP - nome do host, que devem ser configurados manualmente em cada máquina cliente.
    • ( %SystemRoot%\system32\drivers\etc\hosts no Windows)
  • configuração SSH
    • O campo "Nome do host" no PuTTY ou ~/.ssh/config no OpenSSH.
    • Deve ser configurado manualmente.
  • PostIt observa em toda a sua mesa
    • Muito barato. Nenhuma política de nomenclatura. Tipos de dados infinitos.
    • Pouco confiável. Deve ser distribuído manualmente. Não TTL, que geralmente resulta em informações antigas armazenadas em cache por meses até que alguém perceba. Algoritmos de consulta são ineficientes. As respostas às perguntas tendem a se perder facilmente, às vezes deixando apenas um registro de cola no monitor. (Três meses depois, você pode encontrá-los em buffer atrás de sua mesa.)
por 07.09.2010 / 22:19
4

Se você quiser acessar a caixa Linux de um computador arbitrário, precisará de um nome de domínio. Use um serviço DNS dinâmico para apontar um nome de domínio para o seu computador Linux (ou o roteador ao qual ele está conectado). Depois de configurá-lo, ele lhe dará o benefício adicional de não precisar se preocupar com o IP do seu computador Linux em constante mudança.

    
por 07.09.2010 / 17:50
3

Duas opções.

  • Todos os serviços:

Coloque uma entrada para ele em /etc/hosts . Não toque nas linhas existentes, adicione uma nova.

  • apenas ssh:

Adicione uma sub-rotina Host a ~/.ssh/config com o nome que você deseja usar e adicione as opções desejadas abaixo dela. Veja man 5 ssh_config para mais detalhes.

Host myserver
    Hostname 192.168.123.234
    Protocol 2
    
por 07.09.2010 / 17:42
3

Do Windows 7 (por sua edição) ...

Start -> Run -> notepad c:\windows\system32\drivers\etc\hosts

Quando o bloco de notas for iniciado, vá até o final do arquivo e adicione seu endereço IP e nome de host:

x.x.x.x    mylinuxhostname mylinuxhostname.domain.com

Salve o arquivo e tente executar o ping em um prompt de comando:

c:\> ping mylinuxhostname
c:\> ping mylinuxhostname.domain.com

Isso funcionará somente na sua LAN. Conectar-se a ele do "mundo" (por seu comentário adicionado) é uma besta completamente diferente envolvendo DNS (dyndns, godaddy, etc) e configuração de roteador como (NAT) tradução de endereço de rede et al.

    
por 07.09.2010 / 19:46
2

Você vai querer investigar o Samba ou o Winbind. Minha rede all-Linux (incluindo o roteador) pode se comunicar por nome de host, mas não sei como dizer ao Windows o nome da máquina Linux.

    
por 07.09.2010 / 19:59
1

Eu também estou usando o Ubuntu 10.04 e posso conectar minhas máquinas usando o nome delas. Digamos que eu tenha computadores chamados ernie e bert que estão na mesma rede:

Meu prompt se parece com isso em ernie:

ernie:~$ 

Se eu digitar isso:

ernie:~$ ssh [email protected]

Vou ser root no bert:

bert:~#

Eu faço isso entre duas máquinas Ubuntu, mas eu acho que funcionaria com massa também. (Eu não sei sobre conexão com o Windows do Ubuntu, veja outras respostas sobre o samba.)

Você precisa instalar o sshd no Ubuntu para que isso funcione: sudo apt-get install openssh-server

    
por 07.09.2010 / 20:03

Tags