¿Cuál es una forma rápida y sucia de resolver dinámicamente un nombre de host local en Linux?

¿Cuál es una forma rápida y sucia de resolver dinámicamente un nombre de host local en Linux?

Tengo un servicio web ejecutándose localmente que, en el entorno de desarrollo, tiene una dirección IP dinámica cada vez que se ejecuta. Es molesto que tenga que buscar su IP cada vez y volver a navegar hastahttp://$IP/foo

Me gustaría poder navegar http://my_service/fooy tener un script, por ejemplo, /home/me/find_ip.shque imprimirá la IP nueva de mi servicio y que el nombre my_servicese resuelva en la salida find_ip.shcada vez que se solicite.

¿Puedo hacer esto sin configurar un servidor DNS completo localmente?

¿Existe un truco rápido y sucio?

Respuesta1

La solución más sencilla es añadir my_serviceal /etc/hostsarchivo:

127.0.0.1 localhost my_service 

o

127.0.1.1 my_service

Otra solución podría seragregar una interfaz de red virtual como.

EDITAR #1:

Un truco rápido y sucio para que my_servicefuncione localmente sin un servidor DNS es modificar /etc/hosts.

  • Crear/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

  • Programar trabajo cron sudo crontabe -e:
*/1 *  * * *   /home/me/find_ip.sh

información relacionada