2013-01-12 12 views
5

Mam serwer Node.JS, który działa poprawnie na localhost. Teraz chcę, żeby był dostępny z Internetu, hostowany przez moją maszynę. Mój publiczny adres IP (ten, który Google tells me I have) nie wydaje się być „dostępny”:Publikowanie serwera Node.JS w Internecie

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

nie powiedzie się z powodu następującego błędu 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) 

Jak mogę publikować moje node.js serwer do mojego publicznego adresu IP?

[Uwaga: nie mam uruchomionego innego serwera. Próbowałem także różnych portów zgodnie z sugestią here.]

Odpowiedz

4

Najprawdopodobniej znajdujesz się za routerem, więc Twój publiczny adres IP nie jest dostępny nigdzie poza samym routerem. Musisz odsłuchiwać swój prywatny adres IP (zwykle działający w zakresie 192.168 *) i konfigurować port do przodu na routerze.

W przypadku systemu Linux, należy również użyć portu> 1024 zamiast 80, więc nie trzeba uruchamiać węzła jako root. Podczas konfigurowania przekierowania portów można po prostu przesłać dalej port 80 do dowolnego portu, na którym działa serwer węzłowy.

+1

Myślisz, że router jest pieczony w moim komputerze (iMac) lub w moim polu Wifi szerokopasmowego? – Randomblue

+2

To jest twój "wifi box". – ThiefMaster

+0

Pracował jak uczta. Wielkie dzięki. – Randomblue

Powiązane problemy