Nombre de host a Localhost con puerto - OSX [cerrado]

14

Estoy tratando de ejecutar varios Node.jsservidores web localmente en mi máquina.

Debido a que el código que estoy escribiendo debe hacer referencia a un nombre de dominio del que me gustaría mantener una convención dev.myHost.comy señalarlo al servicio no port-80 que se ejecuta desde Node (técnicamente estoy ejecutando uno en Harp.jsy uno en Sails.js).

  • Entonces dev.hostOne.comdebería apuntar alocalhost:123
  • y dev.hostTwo.comdebe apuntar alocalhost:456

es posible? Si es así, cómo.

mondo
fuente

Respuestas:

23

Según tengo entendido, parece que solo usa una máquina de desarrollo local, lo que significa que no está conectado a ninguna red que proporcione un DNS.

Si tengo razón, sugeriría configurar las cosas como se describe a continuación:

Paso 1: Asigna al menos dos direcciones IP a tu MAC OS (una por dominio), digamos:

192.168.0.10
192.168.0.11

Para configurar la segunda IP, tendrá que agregar un segundo adaptador Ethernet (lógico no físico).

Paso 2: como no tiene un servidor DNS, puede configurar su /etc/hostsarchivo agregando:

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

Paso 3: asigna alias a tu interfaz de bucle invertido:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

Paso 4: Configuración ipfwpara reenviar paquetes:

sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

Estás listo !

Ahora :

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí


He configurado dos Node.jsservidores web para probar su caso:

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

Importante: tenga en cuenta que las ipfwreglas y los alias de interfaz de bucle invertido no son persistentes y ya no existirán después de un reinicio. Por lo tanto, considere agregar un script de inicio.

krisFR
fuente
1
Trabajó HERMOSAMENTE. Esto es EXACTAMENTE lo que quería.
mondo
1
Me alegro de que funcione! estaba bastante seguro de que no era totalmente un "duplicado";)
krisFR
en Mac os sierra obteniendo sudo: ipfw: comando no encontrado
ClintM
3
@ClintM: ipfwha sido reemplazado por pfctl. Para ver un ejemplo de cómo abrir un puerto: gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger
Sería realmente bueno actualizar la respuesta en el formato esperado de pfctl.
Simon