我有一个本地运行的 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