Nie jestem najbardziej kompetentnym facetem w dziedzinie sieci, ale proszę bardzo ...
Stworzyłem aplikację w NodeJS i chciałbym przetestować ją w mojej sieci LAN z rodziną. Aplikacja nasłuchuje na porcie 1337
połączeń i mogę uzyskać do niej dobry dostęp przez komputer, wpisując ją localhost:1337
, 192.168.0.3:1337
a nawet http://joel-pc:1337/
w pasku adresu przeglądarki.
Będę również uruchamiał apache obok NodeJS i mogę uzyskać dostęp do tej grzywny, wpisując 192.168.0.3
lub http://joel-pc/
w pasku adresu przeglądarki, o ile jest on podłączony do tej samej sieci.
Oto dziwna część; Jeśli zatrzymam usługę Apache, zmienię aplikację węzła na nasłuchiwanie na porcie 80
(http) 1337
, będzie ona dostępna na moim komputerze przez wpisanie localhost
, 192.168.0.3
a nawet http://joel-pc
w pasku adresu przeglądarki. Jednak nadal nie mogę uzyskać dostępu do NodeJS na żadnym innym komputerze w mojej sieci oprócz mojej.
Próbowałem utworzyć regułę wychodzącą w systemie Windows 7, aby umożliwić dostęp do portu 1337, ale nadal nie mogę uzyskać dostępu do mojego serwera NodeJS na innym komputerze niż mój, nawet jeśli nasłuchuje na porcie 80. Czy jest coś oczywistego Brakuje mi tutaj?
źródło
Odpowiedzi:
Najprawdopodobniej aplikacja węzła wiąże się z adresem IP sprzężenia zwrotnego
127.0.0.1
zamiast z „wszystkimi adresami IP”,0.0.0.0
ponieważ jest to zachowanie domyślnelisten
. Podaj w swoim połączeniu zarówno port, jak i adres IP,server.listen(80, '0.0.0.0');
i spróbuj ponownie.źródło
localhost
działa jak ciąg, ale w innych trzeba wpisać go jako127.0.0.1
Uzyskaj bieżący adres IP sieci lokalnej i uruchom serwer HTTP w następujący sposób:
źródło
::
lub0.0.0.0
)Najpierw musisz dodać
C:\Program Files (x86)\node
do listy zaufanych aplikacji w zaporze.Następnie w aplikacji węzła możesz napisać:
lub:
lub:
lub:
lub:
lub:
Każda z tych 6 kombinacji działa w moim przypadku: node.js w systemie Windows Server 2016, chroniony przez firmowy serwer proxy.
źródło
Wykonanie następujących czynności działało dla mnie na komputerze z systemem Windows. Spróbuj tego: otwórz
Następnie poszukaj węzła node.js na liście i kliknij Zmień ustawienia> Upewnij się, że prywatny dostęp jest zaznaczony, a następnie kliknij OK.
źródło
Znalazłem dobre rozwiązanie tego problemu. Zamiast wykonywać wszystkie konfiguracje (ustawianie zapory ogniowej, port przekazywania itp.) Użyłem localtunnel, który jest narzędziem do ujawniania lokalnego serwera węzłów przez Internet. Możesz go używać do programowania, testowania, udostępniania, po prostu nie używaj go do produkcji.
Najpierw musisz zainstalować localtunnel w następujący sposób:
Następnie skonfiguruj aplikację węzła tak, aby serwer węzłów działał na hoście lokalnym. Na przykład:
Zanotuj swój_port, który w moim przypadku wynosił 3000 , i uruchom serwer węzła.
Otwórz inny terminal i wpisz następujące polecenie, aby uruchomić tunel lokalny.
Następnie w terminalu otrzymasz adres URL, którego możesz użyć do celów programistycznych / testowych. Ten adres URL będzie dostępny w Internecie, więc możesz go również udostępnić innym osobom. Tak długo, jak działa tunel lokalny, inni mogą uzyskać dostęp do serwera lokalnego węzła.
Więcej opcji konfiguracji / pomocy można znaleźć w dokumentacji: https://www.npmjs.com/package/localtunnel
źródło