usar ruta para modificar modifica localizar guardar etc como archivo networking dns hosts

networking - localizar - ruta para modificar host



¿Puedo usar el archivo/etc/hosts para configurar un alias (9)

Este script de shell podría hacer el truco para usted, si solo necesita tener la IP actualizada en su archivo de hosts y no le gusta la sobrecarga de una configuración de DNS personalizada. Podría, por ejemplo, ejecutarlo regularmente como un cronjob.

#!/bin/bash # Get the dynamic IP (dirty, I know) IP=`host -t a mychangingip.myip.com | perl -nle ''/((?:/d+/.?){4})/ && print $1'' | head -n1` # Update the hosts file if test -n "$IP"; then grep -v www.thesite.com /etc/hosts > /tmp/hosts echo "$IP www.thesite.com" >> /tmp/hosts cp /tmp/hosts /etc/hosts fi

El /etc/hosts se puede utilizar para anular las definiciones de DNS, es decir, para apuntar un nombre de host a una dirección IP diferente.

Quiero usar /etc/hosts para crear un registro de alias, es decir, para hacer que mi computadora piense que www.misitio.es no apunta a una ip "codificada", sino que es sinónimo de mychangingip.myip.com.

Se puede hacer?



Hay proveedores de servicios que lo harán de manera cómoda y confiable. Un ejemplo prominente es dyndns .


Investigué esto recientemente, no pude encontrar una solución real. Sin embargo, puede obtener parcialmente lo que desea al agregar una línea de búsqueda a /etc/resolv.conf, por ejemplo:

search myip.com

Luego, buscará mychangingip.myip.com cuando intente resolver mychangingip. Consulte también la página man para resolv.conf


No lo creo, el archivo hosts no es realmente una alternativa al servidor dns. En lugar de tratar de averiguar cómo instalar y configurar bind dns, es posible que desee probar SheerDNS basado en archivos. http://threading.2038bug.com/sheerdns/ (el mejor servidor liviano de dns que encontré a través de la carne fresca).


Si desea SSH a un servidor (con una entrada DNS que cambia dinámicamente), entonces puede agregar efectivamente un "alias" mediante (en el archivo ~ / .ssh / config) creando una entrada:

Host myAlias HostName mychangingip.myip.com

Luego puede "ssh myAlias" (hay otras directivas que pueden ser de uso, por ejemplo, Usuario, Puerto, etc.).


Tuve el mismo problema exacto y lo resolví instalando y usando nginx en mi mac. No necesita un servidor DNS para hacer esto. Simplemente puede aprovechar la opción proxy_pass de nginx para obtener el mismo efecto que cname.

Una vez que haya instalado y configurado nginx, puede alias first.com para second.com como este. En su tráfico / etc / hosts forward first.com a 127.0.0.1.

127.0.0.1 first.com

En su configuración de nginx, agregue lo siguiente:

server { listen 80; server_name first.com; access_log off; location / { proxy_pass http://second.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-for $remote_addr; proxy_connect_timeout 300; } }

Esto debería proporcionarle una configuración tipo cname. ¡Espero que ayude!


Una nota de precaución es si tiene una entrada como esta:

127.0.0.1 dev.example.com

Cuando realmente obtienes la solicitud dentro de tu aplicación (en mi caso ASP.NET), definitivamente habrá resuelto el ''localhost'', por lo que no puedes hacer cosas como esta:

if (Request.Url.Authority == "dev.example.com) { // ... }

El alias se resuelve en ''localhost''. Creo que este comportamiento funciona como si fuera un CNAME


/etc/hosts no se puede usar (por sí mismo) para producir "alias" de nombre de host.

El archivo hosts produce el equivalente interno de los registros A y PTR del DNS, es decir, el mapeo del nombre de host a la dirección IP y viceversa.

Si bien puede agregar varios nombres a una dirección IP específica, eso requiere que conozca la dirección IP por adelantado. No se puede usar para producir el mismo efecto que un registro CNAME , donde un nombre apunta a otro nombre que a su vez se resuelve en la IP deseada.