2015-03-16 19 views
25

Sto utilizzando "www.xip.io" come jolly DNS per il test su diversi dispositivi. Ho impostato il mio dominio principale sul mio indirizzo IP. Accendo un server di rail con bundle exec rails server e vado qui a www.<ip_address>.xip.io:3000 e noto che il mio server non risponde.Cosa ti costa acquistare un Rails Server su 0.0.0.0?

Tuttavia, se collego il mio server di rotaie a 0.0.0.0 come in questo modo bundle exec rails server -b 0.0.0.0, funziona! Non capisco cosa sia la 0.0.0.0 che dice al mio server che funzioni. Qualcuno può dare un senso a questo?

risposta

41

Il collegamento a 0.0.0.0 indica al servizio di associare a tutti gli indirizzi IP sulla macchina. Il server Rails utilizzato per eseguire questa operazione per impostazione predefinita, ma con 4.2 modificato per il binding solo a localhost.

In sostanza, se è destinato solo per localhost allora risponderà solo localmente a uno o localhost127.0.0.1 che non possono lavorare attraverso un servizio di DNS perché non è un indirizzo IP pubblico.

Quando si utilizza 0.0.0.0 si collegherà a localhost e al proprio indirizzo IP instradabile.

+1

Perfetto. Grazie per la 4.2 pepita. – andy4thehuynh

+4

Prego, è stato un brutto (scarsamente pubblicizzato) trucco per molte persone. – smathy

+3

Oh uomo, questo mi ha fatto impazzire. Se si sta tentando di eseguire i binari da un contenitore finestra mobile e non si specifica questa opzione, il contenitore finestra mobile non risponde, indipendentemente da ciò che si fa. Questo è un salvagente. –

-1

Penso che sia necessario utilizzare il binding ogni volta che ci si trova in un guest/macchina virtuale.