在 Linux 上动态解析本地主机名的快速而简单的方法是什么?

在 Linux 上动态解析本地主机名的快速而简单的方法是什么?

我有一个本地运行的 Web 服务,在开发环境中,每次运行时都会有一个动态 IP 地址。令人烦恼的是,我每次都必须查找它的 IP,然后重新导航到http://$IP/foo

我希望能够导航到http://my_service/foo一个脚本,比如说它将打印我的服务的新 IP,并在每次请求时/home/me/find_ip.sh将名称my_service解析为输出。find_ip.sh

我可以在不本地设置完整 DNS 服务器的情况下执行此操作吗?

有没有快速而又简单的破解方法?

答案1

最简单的解决方案是添加my_service/etc/hosts文件:

127.0.0.1 localhost my_service 

或者

127.0.1.1 my_service

另一个解决方案可能是添加虚拟网络接口

编辑#1:

在没有 DNS 服务器的情况下在本地工作的一个快速而简单的技巧my_service是修改/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

相关内容