Mantendo '/ etc / hosts' para hosts no DHCP

7

Na minha rede DHCP local, tenho PCs diferentes que preciso acessar remotamente. Problema é que a mudança do seu IP. Às vezes, conecto meu laptop e meu netbook às redes DHCP de outras pessoas.

Minha solução atual é atualizar o arquivo /etc/hosts sempre que os IPs de destino mudarem.

Meu arquivo /etc/hosts é assim:

# <ip-address>   <hostname.domain.org>    <hostname>
127.0.0.1        localhost.localdomain    localhost laptop    
192.168.1.14     desktop.localdomain      desktop
192.168.1.12     netbook.localdomain      netbook

Existe uma maneira de ignorar toda essa administração manual?

Por exemplo, meus computadores poderiam transmitir seus IPs na LAN, ou algo assim? O Windows faz algo assim, o que permite que você faça referência a um computador na rede com "\\ COMPUTER_NAME"

    
por Stefan 26.12.2010 / 11:31

4 respostas

5

Depende do que está fazendo o DHCP?

A maioria dos roteadores domésticos usa dnsmasq e você pode usá-lo como seu servidor DNS local. Você só precisa definir dnsmasq para retornar a si mesmo como o servidor DNS. Em seguida, você precisa garantir que seus PCs transmitam um nome de host durante a solicitação de DHCP.

Em seguida, voila, você deve conseguir resolver todas as suas máquinas locais através do servidor DNS / DHCP.

    
por 26.12.2010 / 12:12
3

Dependendo do que você deseja realizar, você pode configurar o avahi, que pode transmitir a existência de um serviço sshd em sua máquina. Tenha cuidado em redes 'estrangeiras' embora ...

    
por 31.12.2010 / 10:26
0

Eu sempre me perguntei sobre isso e tentei criar um script como este em / etc / sysconfig / network-scripts / update-hosts: -

#!/bin/sh

set -e

if [ "$IFACE" = lo ]; then
    exit 0
fi

SHORT_HOST='hostname'

# Remove current line with hostname at the end of line
sed -i '/'$SHORT_HOST'$/ d' /etc/hosts

ipaddr=$(ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
echo "$ipaddr $SHORT_HOST" >>/etc/hosts

Eu teria então que ele fosse executado por meio de um script de inicialização /etc/init.d/updatehosts: -

#!/bin/sh
# chkconfig: 2345 11 89
# description: automatically update /etc/hosts
#

if [ ! -x /etc/sysconfig/network-scripts/update-hosts ]
then
    echo "Update hosts: can't update hosts file"
    exit
fi

case "$1" in
    'start')
        # Update hosts:
        cp /etc/hosts /etc/hosts.001
                /etc/sysconfig/network-scripts/update-hosts
                echo "/etc/hosts updated"
        ;;
    'stop')
        # Restore hosts:
                cp /etc/hosts.001 /etc/hosts
                echo "/etc/hosts restored"
        ;;
esac

ativado usando o chkconfig --add updatehosts

Alguém pode recomendar uma maneira melhor ou melhorias para esse método?

    
por 21.11.2013 / 16:05
0

Você pode usar o avahi daemon para vincular seu endereço IP a algum nome de host resolvível toda vez que o seu IP for alterado pelo DHCP.

    
por 27.01.2015 / 20:51

Tags