it-swarm-ja.tech

DHCP上のホストの `/ etc / hosts`を維持する

私のローカルDHCPネットワークには、リモートでアクセスする必要がある別のPCがあります。問題は、彼らのIPが変化することです。ラップトップとネットブックを他の人のDHCPネットワークに接続することもあります。

私の現在の解決策は、ターゲットIPが変更されるたびに/etc/hostsファイルを更新することです。

私の/etc/hostsファイルは次のようになります:

# <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

手動による管理をすべて回避する方法はありますか?

たとえば、私のコンピューターはLAN上でIPをブロードキャストできますか? Windowsはそのようなことを行い、「\\ COMPUTER_NAME」を使用してネットワーク上のコンピューターを参照できるようにします。

7
Stefan

DHCPを何をしているのかによりますか?

ほとんどのホームルーターはdnsmasqを使用し、ローカルDNSサーバーとして使用できます。自身をDNSサーバーとして返すには、dnsmasqを設定するだけです。次に、DHCP要求中にPCがホスト名をブロードキャストすることを確認する必要があります。

次に、出来上がり、DNS/DHCPサーバーを介してすべてのローカルマシンを解決できるはずです。

5
sybreon

達成したいことに応じて、avahiをセットアップして、マシン上のsshdサービスの存在をブロードキャストできます。ただし、「外部」ネットワークでは注意してください...

3
wzzrd

私はよくこれについて疑問に思い、/ 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

次に、initスクリプト/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

chkconfig --add updatehostsを使用して有効化

誰かがこの方法のより良い方法や改善を推奨できますか?

1
RodAllen

DHCPによってIPが変更されるたびに、avahiデーモンを使用して、IPアドレスを解決可能なホスト名にバインドできます。

0
Piotr Kozlowski