2013-01-12 4 views
5

Ho un server Node.JS che funziona correttamente su localhost. Ora lo voglio accessibile da internet, ospitato dalla mia macchina. Il mio indirizzo IP pubblico (quello che Google tells me I have) non sembra essere "accessibile":Pubblica server Node.JS su Internet

https.createServer({ 
    key: privateKey, 
    cert: certificate 
}, server).listen(80, '86.151.23.17'); 

non riesce con il seguente errore Node.JS:

Error: listen EADDRNOTAVAIL 
    at errnoException (net.js:770:11) 
    at Server._listen2 (net.js:893:19) 
    at listen (net.js:937:10) 
    at Server.listen (net.js:994:9) 
    at dns.js:71:18 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

Come posso pubblicare le mie Node.JS server al mio indirizzo IP pubblico?

[Nota: non ho un altro server web in esecuzione. Inoltre, ho provato diverse porte come suggerito here.]

risposta

4

Sei molto probabilmente dietro un router, quindi il tuo IP pubblico non è disponibile da nessuna parte ma sul router stesso. Quello che devi fare è ascoltare sul tuo IP privato (di solito un po 'nell'intervallo 192.168. *) E configurare una porta in avanti sul tuo router.

Se si utilizza Linux, si consiglia di utilizzare una porta> 1024 anziché 80, quindi non è necessario eseguire il nodo come root. Quando si configura il port forwarding è sufficiente inoltrare la porta 80 a qualsiasi porta su cui è in esecuzione il server nodo.

+1

Pensi che il router viene cotto in mia macchina (un iMac) o nella mia casella di WiFi a banda larga? – Randomblue

+2

È la tua "scatola wifi". – ThiefMaster

+0

Ha funzionato come un piacere. Grazie mille. – Randomblue