Linux 上でローカル ホスト名を動的に解決する簡単な方法は何ですか?

Linux 上でローカル ホスト名を動的に解決する簡単な方法は何ですか?

ローカルで実行しているウェブサービスがあり、開発環境では、実行するたびにIPアドレスが動的に設定されます。面倒なことに、毎回IPを調べて、http://$IP/foo

たとえば、サービスの最新の IP を印刷し、要求されるたびに名前を解決して出力するようhttp://my_service/fooなスクリプトに移動して使用できるようにしたいと思います。/home/me/find_ip.shmy_servicefind_ip.sh

完全な DNS サーバーをローカルに設定せずにこれを実行できますか?

手っ取り早いハックはありますか?

答え1

最も簡単な解決策は、ファイルmy_serviceに追加することです:/etc/hosts

127.0.0.1 localhost my_service 

または

127.0.1.1 my_service

もう一つの解決策としては仮想ネットワークインターフェースを追加する

編集#1:

my_serviceDNS サーバーなしでローカルで動作させるための簡単な方法は、を変更することです/etc/hosts

  • 作成する/home/me/find_ip.sh
#!/bin/bash

FILE_OLD_IP=/tmp/ip.txt
OLD_IP='0.0.0.0'
NEW_IP=`ip route get 1 | awk '{print $NF;exit}'`

if [ -f "$FILE_OLD_IP" ]; then
        OLD_IP=`cat $FILE_OLD_IP`
fi


if [ $NEW_IP != $OLD_IP ]; then
    sed -i "s/.*my_service/$NEW_IP\tmy_service/" /etc/hosts
    echo $NEW_IP > $FILE_OLD_IP
    logger "NEW_IP: $NEW_IP"
else
    logger "CURRENT_IP: $NEW_IP"
fi
exit 0

  • cronジョブをスケジュールするsudo crontabe -e:
*/1 *  * * *   /home/me/find_ip.sh

関連情報