DHCP에서 호스트의 "/etc/hosts" 유지

DHCP에서 호스트의 "/etc/hosts" 유지

내 로컬 DHCP 네트워크에서 다른 PC에 원격으로 액세스해야 합니다. 문제는 IP가 바뀌었다는 겁니다. 때때로 나는 내 랩톱과 넷북을 다른 사람의 DHCP 네트워크에 연결합니다.

/etc/hosts현재 솔루션은 대상 IP가 변경될 때마다 파일을 업데이트하는 것입니다.

/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"을 사용하여 네트워크의 컴퓨터를 참조할 수 있도록 함으로써 유사한 기능을 수행합니다.

답변1

DHCP의 기능에 따라 다릅니다.

대부분의 가정용 라우터는DNS로컬 DNS 서버로 사용할 수 있습니다. 설정하면 됩니다DNS자신을 DNS 서버로 반환합니다. 다음으로, DHCP 요청 중에 PC가 호스트 이름을 브로드캐스트하는지 확인해야 합니다.

그러면 짜잔, DNS/DHCP 서버를 통해 모든 로컬 컴퓨터를 확인할 수 있을 것입니다.

답변2

수행하려는 작업에 따라 컴퓨터에 sshd 서비스가 있음을 알리는 avahi를 설정할 수 있습니다. 하지만 "외국" 네트워크에서는 조심하세요...

답변3

나는 종종 이 질문에 대해 궁금해했고 /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

그런 다음 초기화 스크립트 /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를 사용하세요.

누구든지 이 접근 방식에 대한 더 나은 접근 방식이나 개선 사항을 추천할 수 있습니까?

답변4

avahi 데몬을 사용하면 DHCP가 IP를 변경할 때마다 IP 주소를 확인 가능한 호스트 이름에 바인딩할 수 있습니다.

관련 정보