ruby on rails - español - Acceda a webrick/rails desde otra computadora en la red local
ruby on rails tutorial español (7)
Sí, esta fue una buena respuesta en general :
rails server -b 0.0.0.0
Si usa Ubuntu , probablemente tenga que abrir el puerto en el firewall :
sudo ufw allow 3000
Si su sistema se está ejecutando en VirtualBox , debe verificar su Configuración de red .
En el caso del modo de red
NAT
, debe hacer clic en las opciones extendidas y allí en el reenvío de puertos . Agregue una regla para el protocolo TCP, el puerto host 3000 (o cualquier otro) y el puerto invitado 3000.
Tengo una aplicación de rieles ejecutándose en localhost: 3000. Deseo acceder desde otra computadora en la misma red. Siento que ya he hecho esto con facilidad, pero me está causando un poco de dolor. Puedo hacer ping al IP de la computadora sin problemas, pero presionar ip: 3000 en el navegador no funciona. Traté de lanzar rails s -b ipaddress
también, y no tuve suerte.
Sugerencias?
Asumiendo que Webrick comience sin problemas, este es un problema 100% de firewall. Debe proporcionar algunas especificaciones, como qué sistema operativo está ejecutando su host y si tiene o no privilegios de administrador en cuanto al control del firewall.
Si está en Linux y ejecuta el servicio de firewall de iptables, necesita agregar una regla para aceptar tráfico sobre el puerto 3000. Se vería algo así como:
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
Sin embargo, ese comando sería una solución de una sola vez, necesitaría extender su actual script de reglas de iptables para que sea permanente cada vez que su sistema arranque o inicie sesión.
Si está ejecutando Windows, dependiendo de si está ejecutando XP o Vista / 7, tendría que hacer algo similar. Voy a suponer que estás en el entorno Vista / 7, y solo necesitarías seguir los pasos provistos a través de esta guía http://windows.microsoft.com/en-US/windows7/Open-a-port-in-Windows-Firewall .
Después de asegurarse de que el firewall del lado del servidor esté abierto a la conexión entrante en puertos altos (esto normalmente es cierto y el puerto predeterminado es 3000, por lo que probablemente no tenga que hacer nada) también debe iniciar el servidor de la siguiente manera:
rails server -b 0.0.0.0
que lo une a la dirección universal. Se une a localhost
por defecto.
Usando este método no es necesario que se vincule al puerto 80, pero puede hacer esto:
rails server -b 0.0.0.0 -p 80
(Si está utilizando rvm, entonces puede necesitar usar rvmsudo
)
Para que este cambio sea más permanente, edite su config/boot.rb
y agregue esto:
require ''rails/commands/server''
module Rails
class Server
def default_options
super.merge(Host: ''0.0.0.0'', Port: 3000)
end
end
end
Entonces solo deberías usar rails s
Fuente: https://.com/a/29562898/1795429
Estoy usando capataz para administrar mi aplicación basada en Procfile.
Agregando -b 0.0.0.0
al comando de mi bundle exec rails s
en Procfile funcionó para mí.
Intente ejecutar el servidor en el puerto 80 en su lugar, su firewall probablemente esté bloqueando el puerto 3000.
Una razón es que su ip no está vinculada al servidor de rieles. Puede enlazar el ip con la opción de comando -b.
Usage: rails server [mongrel, thin etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=IP Binds Rails to the specified IP.
Default: localhost
rails server -b 0.0.0.0 -p 8000
Esto funcionó para mí. Sin problemas de firewall, y sin necesidad de otorgar permisos de superusuario.