私のローカル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
私はしばしばこの質問について疑問に思っていました。
#!/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アドレスを解決可能なホスト名にバインドできます。