У меня есть веб-сервис, работающий локально, который в среде разработки имеет динамический IP-адрес каждый раз, когда он запускается. Раздражает то, что мне приходится каждый раз искать его IP-адрес и переходить наhttp://$IP/foo
Я хотел бы иметь возможность перейти к http://my_service/foo
скрипту, /home/me/find_ip.sh
который, скажем, будет выводить свежий IP-адрес моей службы и разрешать имя 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:
Быстрый и грязный трюк, позволяющий my_service
работать локально без DNS-сервера, — это изменить /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