¿Cómo funciona / etc / hosts o / private / etc / hosts en 10.11?

1

He estado intentando probar mi conocimiento de qué es /etc/hosts pero no estoy llegando a ninguna parte. A partir de la comprensión, el punto de /etc/hosts es que puede redondear los nombres de host a direcciones ip. Entonces, si coloca lo siguiente en su archivo /etc/hosts :

127.0.0.1:3000 foo

entonces un curl foo debería enviar una solicitud GET al host local en el puerto 3000. Sin embargo, hay un problema, porque aparentemente en OSX 10.11.6 no usa /etc/hosts en lugar de usar /private/etc/hosts , así que luego agregar la línea anterior a ese archivo debería funcionar. Pero no es así porque hay otra arruga, tiene que restablecer el caché de DNS, que de acuerdo con esto site se puede hacer con el siguiente comando: sudo killall -HUP mDNSResponder . ¿Me estoy perdiendo algo aquí?

Cuando rizo localhost: 3000 me sale el blog de rails hello world (porque tengo el blog de rails hello world predeterminado)

➜ curl localhost:3000
.
.
.
<strong>Rails version:</strong> 5.0.0.1<br />
<strong>Ruby version:</strong> 2.3.1 (x86_64-darwin15)
</p>
</section>
</div>
</body>
</html>
➜

sin embargo, cuando trato de curvar el nombre de dominio personalizado, no funciona:

➜ sudo vim /private/etc/hosts
➜ sudo killall -HUP mDNSResponder
➜ cat /private/etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
127.0.0.1:3000 foo
255.255.255.255 broadcasthost
::1             localhost
➜ curl foo
curl: (6) Could not resolve host: foo

¿Qué estoy haciendo mal aquí?

Gracias :)

    
pregunta mbigras 21.09.2016 - 23:42

1 respuesta

2

El archivo /etc/hosts en los sistemas UNIX es para la resolución de DNS local.

Como tal, no tiene en cuenta los puertos, ya que vincula los nombres de los hosts con las direcciones IP, como el servicio de nombres de dominio.

Agregando la siguiente línea:

127.0.0.1 foo

a su archivo /etc/hosts le dice al respondedor de DNS interno que envíe las solicitudes de foo a 127.0.0.1 .

Le permitirá hacer lo siguiente:

# curl foo:3000

    
respondido por el Liam W 21.09.2016 - 23:49

Lea otras preguntas en las etiquetas