내 로컬 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 주소를 확인 가능한 호스트 이름에 바인딩할 수 있습니다.