No se puede acceder al servidor Sinatra local desde otro equipo en la misma red
Tengo un servidor Sinatra simple que corro a través de textmate pero no puedo acceder desde otro equipo en la misma red.
Estoy ejecutando Ruby 1.9.3p327 y Sinatra 1.4.1 en un Mac OS 10.8.3. El firewall está desactivado.
Probé el mismo escenario en diferentes redes y computadoras.
La computadora responde a pings simples pero cuando intento telnet puerto 4567 no puedo establecer una conexión.
3 answers
Hubo un reciente commit a Sinatra que cambió la dirección de escucha predeterminada a localhost
de 0.0.0.0
en modo de desarrollo debido a problemas de seguridad.
Para permitir explícitamente el acceso desde la red, debe ejecutar su aplicación en otro modo (por ejemplo, producción) o establecer el bind
opción a 0.0.0.0
.
Puede hacer esto desde la línea de comandos usando el servidor integrado usando la opción -o
:
$ ./my_sinatra_file.rb -o 0.0.0.0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-28 18:31:29
Asegúrese de que el servidor sinatra no esté escuchando solo en la dirección ip localhost (127.0.0.1).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-28 15:37:26
Estoy hablando con un poco de información extra que puede ayudar a la gente como yo golpeando sus cabezas contra la pared.
Estoy en una máquina Windows, no en una Mac, y tuve que abrir el puerto que estaba usando (el valor predeterminado para Sinatra es 4567) al público (aunque estoy en una red universitaria).
Para hacer esto en Windows 10:
- Pulse la tecla de Windows
- Busque firewall y presione enter
- Vaya a configuración avanzada
- Haga clic en reglas de entrada en la parte superior izquierda
- Haga clic en nueva regla en la parte superior derecha
- Haga clic en la opción puerto
- Introduzca su puerto (probablemente 4567 para Sinatra)
- Siguiente
- Y ahora elige entre dominio/privado/público.
Ahora otra cosa a considerar es quién puede acceder a su servidor web. Si quieres a alguien, elige público. No estoy seguro (y me encantaría la entrada de otros) cómo conseguir que solo los dispositivos en la misma red pública se conecten. También puede permitir IPS específicas a través, pero para que yo sugiera que investigue por su cuenta.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-12 21:51:26