我有一個本地運行的 Web 服務,在開發環境中,每次運行時都有一個動態 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:
在沒有 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