Configurando hostnames na rede local [duplicada]

0

Então, estou montando uma rede de experiências para mim e para os outros geeks da minha escola usarem para teste de sites e prática de servidores, e eu sou o administrador de sistemas e de rede (mas na verdade é só para jogar Quake). Mexendo com isso em casa, eu acho tedioso ter que digitar um endereço IP inteiro para o ssh em um host (neste caso, um pi de framboesa). O nome do host atual que tenho para ele é hyperfang. Em vez de pi@longassip , como posso fazer isso para que eu possa fazer isso pi@hyperfang ? No meu roteador, há configurações para o DNS estático. Eu teria que criar um servidor DNS na minha rede para que isso funcionasse?

Minha rede é sem fio e os laptops estarão conectados. Eu não tenho acesso root aos laptops, mas eu tenho um pi de framboesa para login do usuário através do ssh. O que eu quero é que quando alguém entrar na rede e quiser fazer login no meu pi, eles podem usar pi@hyperfang . Eu não estou procurando por uma solução de configuração hostfile, mas algo parecido com domínios locais. Eu tenho avahi em execução no meu pi, mas não está funcionando.

NOTA: esta rede NÃO está conectada à internet, é uma rede local pura.

    
por SpecialBomb 25.05.2016 / 03:02

4 respostas

2

Você pode ssh no Pi com [email protected] . hostname.local funciona na maioria dos lugares em que você usaria um endereço IP, embora haja algumas exceções, por exemplo, rsync .

Isso pressupõe que avahi esteja em execução, o que deve ser o caso de instalações recentes de Raspbian

    
por 25.05.2016 / 04:06
0

Existem algumas opções diferentes dependendo de quanto tempo você deseja investir, sua habilidade técnica e quão flexível você quer que o sistema seja.

Para uma pequena rede mista ou não-windows, sugiro usar o arquivo hosts em cada máquina. Para uma rede completamente baseada em Windows (que você não tem obviamente, baseado em seu post e no nome deste site), você pode geralmente confiar em netbios para 'encontrar' outras máquinas Windows na rede, fornecendo capacidades de busca de nome de host entre outras coisas. .

O arquivo hosts, localizado em / etc / hosts em máquinas linux, é uma lista simples que mapeia endereços IP para nomes de host. Se você tiver endereços IP fixos e um número relativamente pequeno de máquinas para atribuir nomes de host e endereços IP, esse é o caminho a ser seguido.

Aqui está uma cópia do arquivo de hosts que tenho nesta máquina; não muito nele porque eu uso um servidor dns local (dnsmasq).

#
# /etc/hosts: static lookup table for host names
#

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1       localhost.localdomain   localhost
::1             localhost.localdomain   localhost
192.168.1.2     lenny
# End of file

Basta adicionar uma nova linha a este arquivo para cada par de endereço IP / nome de host que você possui. Os endereços de localhost, ipv6 e ipv4, precisam ficar no arquivo - as coisas normalmente vão muito mal sem isso.

Depois de preencher esta lista, você precisa distribuí-la para cada máquina em sua LAN. Uma vez feito isso, você pode se referir a cada máquina pelo nome do host em vez do endereço IP. Você também pode fornecer um determinado endereço IP a vários nomes de host / aliases; eg

192.168.1.2    lenny   lennon  lemon

Em uma máquina remota, você pode se conectar a essa máquina com qualquer um desses nomes (se o arquivo hosts modificado estiver instalado).

As máquinas Windows também têm um arquivo hosts, enterrado um pouco mais no sistema, geralmente em:

C:\Windows\System32\drivers\etc\hosts 

Ele usa a mesma sintaxe da versão linux. Aqui está um link para mais informações sobre essa abordagem .

Se você tem um servidor dedicado e deseja configurar seu próprio DNS local, você pode com dois programas primários - dnsmasq e liga . Como essa LAN não está conectada à Internet, acho que seria um exagero, mas são opções. O dnsmasq tende a ser mais fácil de configurar, mas é menos completo. Configurada corretamente, a ligação pode suportar infra-estrutura de nível empresarial.

Atualizar

Você pode definitivamente usar um pi de framboesa como um servidor de DNS local; não é incomum. Aqui estão alguns links para você começar:

Linux Magazine blog.grobinson.net markwilson.it

A preocupação que eu tenho é como os clientes nesta rede estão atualmente configurados e se você seria capaz de modificá-lo. Se todos os clientes estiverem configurados para DHCP e o roteador ao qual você tem acesso total estiver atualmente atendendo a essa função, tudo estará configurado. Você simplesmente configura o servidor dns do roteador para o endereço fixo (não DHCP) do pi de framboesa. Você pode usar o DHCP se configurar o roteador para usar a reserva que o endereço IP emitido pelo DHCP para o endereço MAC do pi - quase todos os roteadores permitem essa configuração.

Depois disso, configure o dns no pi seguindo estas instruções.

Alguns roteadores têm recursos adicionais embutidos - você deve pesquisar um pouco - em alguns casos eles criam um domínio personalizado (por exemplo, .local ou .lan) e adicionam todos os clientes dhcp a ele; permitindo comunicação LAN por hostname. Outros têm capacidade semelhante a um arquivo hosts (ou até mesmo um arquivo hosts). Eu daria uma olhada rápida antes de mergulhar no dnsmasq.

    
por 25.05.2016 / 03:52
0

Se você precisar apenas do alias disponível em seu próprio sistema, não precisará de um servidor DNS ou de um roteador envolvido. Você pode simplesmente criar o alias em um dos dois lugares, dependendo de como você deseja usá-lo.

Apenas alias do SSH

Se você pretende apenas SSH para hyperfang você pode criar um arquivo de configuração SSH com algumas informações que efetivamente encurtam seu comando SSH. Por exemplo.

  1. Verifique se ~ / .ssh / config existe. Se não existir, basta criá-lo touch ~/.ssh/config .

  2. Edite o arquivo de configuração do SSH da seguinte forma:

    Host hyperfang
        HostName <longassip>
        User pi
    
  3. Inicie uma conexão SSH usando ssh hyperfang .

Alias para todo o sistema (isto é, todas as operações de rede, não apenas SSH)

Se você quiser fazer ping, telnet, wget, curl etc para hiperfangear, você quer algo um pouco mais visível do que o arquivo de configuração SSH. Nesse caso, o arquivo hosts funcionará. Você precisará de credenciais raiz ou privilégio sudo para fazer essa alteração.

  1. Edite /etc/hosts para anexar a seguinte linha:

    <longassip> hyperfang

  2. Inicie uma conexão SSH usando ssh pi@hyperfang

NOTA:

Se você quiser que todos em sua rede usem hyperfang como um alias, essas não são as soluções para você e você deseja um servidor DNS. Nesse caso, siga as instruções do seu roteador para configurá-lo ou configure um servidor DNS na sua rede.

    
por 25.05.2016 / 03:51
0

IP estático & Arquivo 'hosts'

Defina o IP do dispositivo para um IP estático e adicione esse IP e hostname ao seu arquivo /etc/hosts . Por exemplo,

192.168.100.22    hyperfang.localnet.lan    hyperfang

Arquivo de configuração do SSH

Além disso, como foi apontado em outra resposta, adicionar um arquivo / opção de configuração SSH permitirá que você especifique itens diferentes; por exemplo. usuário, porta, etc.

$ cat ~/.ssh/config

Host 192.168.100.22
   User pi

Script

Crie um script simples ou alias que chame a função. Obviamente, se outras pessoas são destinadas a usá-lo também para facilitar este processo, então um roteiro é o caminho a percorrer; porque o alias é local para o seu sistema e / ou usuário.

alias sspi='ssh [email protected]'

Para um script que pode ser distribuído se / quando necessário, esta é uma tentativa extremamente simples:

#!/bin/bash

# Optional Message
echo 'This script is about to connect to...'

# Prompt for confirmation
read -p "Are you sure? " -n 1 -r
echo    # (optional) move to a new line
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
    exit 1
fi

xterm -e ssh [email protected]
    
por 25.05.2016 / 10:28