2015-03-18 16 views
24

Per la prima volta dall'aggiornamento a OSX Yosemite, ho bisogno di visualizzare un'app in esecuzione sulla mia macchina da un'altra macchina sulla stessa rete. In precedenza, questo era semplice come trovare il mio indirizzo IP interno e usarlo con la porta 3000, ad es. http://192.168.0.111:3000.Applicazione Rails non visibile alla rete locale

Tuttavia, ora sto trovando che con Yosemite questo non funziona. L'applicazione è definitivamente in esecuzione ed è disponibile tramite localhost:3000 ma non tramite il mio IP interno.

Ho eseguito lo scanner di porta dell'utilità di rete e mostra che localhost espone la porta 3000 ma il mio IP no. Altre macchine sulla rete che devono ancora essere aggiornate (10.7.5 e 10.9.5) non hanno questo problema.

Qualsiasi aiuto sarebbe molto apprezzato.

Modifica: secondo il pannello di sicurezza e privacy delle preferenze di sistema, il firewall Yosemite è attualmente spento, quindi questo non causa il problema.

risposta

47

Per impostazione predefinita, rails server accetta solo le connessioni da localhost. È possibile controllare questo, cercando in l'output della console:

Listening on localhost:3000, CTRL+C to stop 

per l'ascolto su tutti gli indirizzi, che permetteranno di collegare da altre macchine sulla rete locale, è necessario in modo esplicito associare a un indirizzo più permissiva. Prova questo:

rails server --binding=0.0.0.0 

si dovrebbe ora vedere:

Listening on 0.0.0.0:3000, CTRL+C to stop 

Ora è possibile collegare al vostro applicazione Rails da altrove sulla rete locale, mentre si naviga per esempio http://192.168.0.111:3000.

+1

Il cambiamento è arrivato con 4.2? Ho diversi altri progetti di Rails 4.x e si legano ancora a 0.0.0.0 ... Grazie per quello non avrei nemmeno pensato di guardare le rotaie stesse. – BrightBlue

+0

Sì, sono abbastanza sicuro che questo è stato introdotto in 4.2.0. –

+0

c'è comunque dove puoi fare questo standard con 4.2.0. è fastidioso scriverlo in ogni momento. –

Problemi correlati