18 votos

¿Cómo acceder a MacOS localhost (puerto 3000) desde Parallels IE?

En mi Mac del trabajo (Sierra) estoy ejecutando un servidor web NodeJS en localhost, puerto 3000. Necesito acceder a él desde Internet Explorer ejecutado en Parallels para realizar pruebas.

He buscado, leído y experimentado mucho, y hasta ahora me he quedado bloqueado. Mi situación actual es la siguiente:

Tengo una red Parallels "Host-Only" con mi Mac en 10.37.129.2 y mi caja virtual de Windows en 10.37.129.3

Apuntando mi IE a 10.37.129.2:3000 no lo hace.

He pasado por todo lo imaginable para asegurarme de que el puerto 3000 está abierto entre los dos, pero nmap -p 3000 10.37.129.2 desde el lado de Windows me dice que el puerto 3000 permanece cerrado, al igual que el software Network Utility Port Scan de Mac.

Lamentablemente, todas las guías y consejos sobre el tema son o bien insuficientes, o bien muy anticuados, o simplemente no tienen éxito cuando se intentan.

Cualquier progreso que me ayude a conseguir será muy apreciado.


Las partes relevantes de mi server.js son:

const port = process.env.PORT || 3000;
const host = process.env.HOST || 'localhost';
const proxyTarget = process.env.PROXY || 'none';

0 votos

¿Has probado mis propuestas?

0 votos

Sí, me has enderezado absolutamente y me has puesto en el camino correcto. @klanomath

20voto

sambua Puntos 211

Una de las formas en que pude usarlo, fue encontrar mi dirección IP4 local proporcionada por el router.

De Mac system preferences > Network > IP Address: 192.168.x.xx

Y digamos que si se accede en Mac con http://localhost:3000 también puede hacerlo con http://192.168.x.xx:3000 desde el propio Mac y desde el sistema operativo Windows paralelo con configuración de red compartida.

Esta dirección IP podría cambiarse cada vez que se reinicie el router o se elija otro router, etc.

Actualmente, estoy usando Parallels Desktop 12

5 votos

Creo que esta es la solución más sencilla

4 votos

Esta debería ser la solución aceptada

1 votos

Si tienes un proceso de servidor que estás iniciando en tu local (mac), asegúrate de decirle también a ese proceso que se vincule a la misma dirección, en lugar de (por ejemplo) localhost:3000 o 0.0.0.0:3000.

4voto

klanomath Puntos 19587

El "trasfondo técnico" del comportamiento especial (al menos en Macs) de usar localhost como "constante de host" es la naturaleza específica de dns.js, que obviamente vincula el servidor http/https de node a la interfaz que revierte al Constantemente el anfitrión (= localhost) con la ayuda de mDNSResponder.

Esto es localhost > 127.0.0.1 > lo0.

Cualquier otro interfaz como en0/en1 como interfaces físicos o vnic0/vnic1 como interfaces virtuales de Parallels no será dirigido/adherido.

Para solucionarlo puede

  • configurar un servidor DNS como dnsmasq en la red de Parallels y utilizar el fqdn del host del servidor http del nodo como const. de host
  • utilizar la dirección IP del servidor http del nodo en la red de Parallels como const. de host
  • modificar los archivos de hosts de todos los hosts de la red de sólo hosts de Parallels y añadir una línea como 10.37.129.2 testserver.example.com y utilizar testserver.example.com como const. de host

0 votos

Hola, gracias por la respuesta, pero ¿hay alguna explicación mejor? No tengo ni idea de cómo conseguir ninguna de las tres cosas. "host const" no devuelve nada, sino que enlaza con este post.

0 votos

Ok, lo tengo, esto ayudó: toddvachon.com/2013/04/

3voto

Donskikh Andrei Puntos 111

Sólo tiene que ejecutar en el terminal:

ifconfig

Y vaya a la dirección vnic0: inet del Parallels (como http://1x.2xx.5x.2:3000/ por ejemplo)

0 votos

En mi caso, la interfaz se llamaba bridge101 . Una línea rápida para ver la IP: bash ifconfig | grep bridge101\: -A3

0 votos

Prefiero esta respuesta. Usando la dirección IP mostrada en ifconfig -> Bridge101 funcionará incluso cuando cambies la red con tu mac (lo que cambiará la dirección IP del sistema anfitrión).

2voto

Michael Plotke Puntos 126

La solución temporal es editar server.js y establecer host = '10.37.129.2' o establecer el HOST variable del sistema a 10.37.129.2 y leerlo con host = process.env.HOST || 'localhost' . También es posible editar /private/etc/hosts al mapa 10.37.129.2 a localhost aunque mi prueba rápida de eso falló.

Todo se comportó exactamente como se esperaba. El localhost se asigna a 127.0.0.1 y no a ninguna dirección IP de la red. Así, 10.37.129.2 que era la IP de mi Mac en la red virtual compartida con Windows que se ejecutaba en Parallels, nunca llegaba localhost . Esto es correcto y razonable.

Todo el mérito es de klanomath . Gracias.

2 votos

Localhost es un nombre "mágico" y no puedes/debes configurarlo con nada más que una dirección IP 127.x.y.z. Usted tendría que establecer también en cualquier cliente de alberga para poder alcanzar el "localhost|10.37.129.2" remoto, lo que rompería cualquier estándar RFC relacionado y haría que los clientes alberga archivos inútiles con respecto a su propio "localhost'iness". (No sé cómo decirlo con precisión en inglés...)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X