Jak uzyskać dostęp do lokalnego serwera WWW na moim laptopie z innego komputera? [Zamknięte]
37
Mam aplikację uruchomioną na moim komputerze w wersji 127.0.0.1:3000
Chciałbym uzyskać dostęp do tej aplikacji z iPhone'a podłączonego do tej samej sieci. Zrobiłem to już wcześniej, ale nie rozumiem, jak to zrobiłem. Jakieś pomysły?
spróbuj rails server -b 0.0.0.0, a następnie przeglądaj to na swoim iPhonie.
zx1986
Odpowiedzi:
37
Najpierw musisz określić adres IP lub nazwę komputera, na którym działa serwer WWW. Zakładam, że używasz serwera WWW na komputerze Mac, ponieważ macosxdokładnie otagowałeś swój post, instrukcje są podobne dla maszyn z systemem Linux. Na komputerze Mac:
Otwarte Terminal.app. Jest poniżej Applications->Utilities.
Uruchom ifconfigw terminalu. To pokazuje wszystkie interfejsy sieciowe na komputerze. Jedną z nich jest sieć, do której urządzenie jest aktywnie podłączone. Jeśli Mac jest podłączony przewodowo, powinno być en0. Zanotuj adres później inet- powinien to być adres, którego używa twoje urządzenie.
Załóżmy, że odkryłeś, że to 192.168.10.1.
Sprawdź, czy możesz połączyć się z tym adresem z serwera za pomocą nc -v 192.168.10.1 3000.
Powinieneś zobaczyć wiadomość podobną do Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
Jeśli to nie zadziała, patrz poniżej.
Jeśli to działa, naciśnij, ctrl-Caby wyjść z sesji nc.
Teraz spróbuj połączyć się na komputerze klienckim.
Jeśli jest to aplikacja internetowa, połączenie powinno być możliwe za pośrednictwem przeglądarki
Jeśli nie możesz połączyć się z aplikacją na prawdziwym adresie serwera, oznacza to, że aplikacja nie nasłuchuje pod tym adresem. Musisz zbadać, jak zmienić konfigurację aplikacji, aby zmodyfikować to zachowanie. Ponieważ nie wiem, jaką aplikację uruchamiasz, nie mogę zaoferować żadnych dobrych pomysłów na ten temat.
10x kolego ... jaka jest różnica, gdy mówimy o systemie opartym na systemie Windows z serwerem Wamp na nim ... czy jest jakaś różnica?
Sagive SEO
Używam mac sierra. Jestem w stanie uzyskać dostęp do serwera z mojego komputera Mac (na którym działa serwer) za pośrednictwem 10.55.18.22:3000, ale nie mogę uzyskać dostępu do niego z innego komputera, nawet jeśli oba są w tej samej sieci. Opcja udostępniania sieci nie jest dostępna w sierra. Jak możemy sprawić, żeby to działało?
santhosh kumar
saanthosh: Sprawdź przekierowanie portów na routerze. To właśnie robiłem, zanim odkryłem funkcję udostępniania Internetu przez OSX (która najwyraźniej jest dostępna od co najmniej OSX 10.6). Przeprowadziłem testy hosta lokalnego na różnych urządzeniach mobilnych w tym samym pokoju / sieci, co moja maszyna deweloperska OSX, co było możliwe dzięki standardowym / małym zmianom konfiguracji routera (tj. Przekierowaniu portów). Inne artykuły i wątki SO zawierają informacje o konfiguracji routera. Ostatecznie jestem teraz w nowej lokalizacji i nie mam dostępu do routera, więc zamiast tego używam udostępniania Internetu przez OSX (High Sierra), aby osiągnąć to samo.
MarsAndBack
12
Znajdź nazwę komputera Mac za pomocą hostname(w wierszu polecenia Terminal) i użyj jej w adresie URL. Np. Http: //Tonys-iMac.local: 3000 /
Jeśli z jakiegoś powodu Bonjour nie działa w twoim środowisku, znajdź adres lotniska na komputerze iMac lub MacBook za pomocą
Ta odpowiedź ma kilka dobrych optymalizacji w stosunku do mojej, jeśli chodzi o znalezienie nazwy hosta i adresu IP.
Phil Hollenback,
2
dlaczego bonjour nie działa? Uważam, że moja nazwa hosta to gm20152.local. Ale kiedy próbuję gm20152.local: 3000 na tym samym komputerze, pojawia się poprawna strona. Ale kiedy próbuję gm20152.local: 3000 na moim telefonie z Androidem , przeglądarka na moim telefonie nie może znaleźć hosta. Myślę, że dzieje się tak, ponieważ mój telefon nie ma możliwości mapowania gm20152.local na adres IP mojego Macbooka. Jak mogę to osiągnąć?
Zasadniczo w ustawieniach zapory można zezwolić określonej aplikacji (np. Ruby) na przyjmowanie połączeń przychodzących. Dodatkowo, aby umożliwić dostęp do świata zewnętrznego (np. Www), musisz przekierować ruch do wewnętrznej bramy: portu za pomocą ustawień routera.
Oto jak to zrobić:
Mac-> Sys Preferencje-> Udostępnianie-> Zaznacz pole wyboru „Udostępnianie w sieci”
Mac-> Sys Preferencje-> Bezpieczeństwo-> zezwól aplikacji (np. Ruby) na akceptowanie połączenia przychodzącego
Otwórz port na routerze (przez 192.168.1.1), aby przekierować ruch z twoj_web_ip: port do local_gateway: port
Np. Z ustawień routera mojego Verizon -> Przekazywanie portów -> utwórz regułę: przekaż do lokalnej bramy (np. 192.168.1.4), niestandardowy port, protokół tcp, source = dowolny, miejsce docelowe = 3280, wszystkie typy połączeń, przekieruj do portu = 3000.
Gotowy. Teraz z komputera zdalnego otwórz przeglądarkę na swój adres IP (znajdź poprzez http://www.whatismyip.com/ ) + port docelowy # powyżej, np. 72.189.194.65:3280, to połączy się z twoim lokalnym 192.168.1.4 : 3000
127.0.0.1 to adres lokalny, który każdy komputer ma dla siebie. Musisz dowiedzieć się, jaki jest prawdziwy adres IP (lub nazwa hosta / Bonjour) urządzenia. Przejdź do Preferencji systemowych, Sieci i wyszukaj adres IP urządzenia, albo port Ethernet, jeśli korzystasz z kabla, albo lotnisko, jeśli korzystasz z sieci WLAN. Następnie otwórz ten adres wraz z częścią: 3000 w Safari na iPhonie.
Również okienko preferencji udostępniania zawsze pokazuje nazwę lub adres, pod którym można uzyskać dostęp do komputera.
James
2
Jeśli aplikacja nasłuchuje tylko w wersji 127.0.0.1:3000, nie można uzyskać do niej dostępu z innego komputera. W tym celu należy zmodyfikować konfigurację, aby nasłuchiwała adresu IP lub 0.0.0.0 (wszystkie dostępne interfejsy). To jest pierwsza opcja.
Drugą opcją jest użycie serwera proxy.
Trzecią opcją jest to, że jeśli możesz ssh z iPhone'a, możesz także użyć przekazywania ssh.
ssh użytkownik @ host -L 3000: 127.0.0.1: 3000
Następnie na telefonie iPhone otwórz 127.0.0.1:3000
rails server -b 0.0.0.0
, a następnie przeglądaj to na swoim iPhonie.Odpowiedzi:
Najpierw musisz określić adres IP lub nazwę komputera, na którym działa serwer WWW. Zakładam, że używasz serwera WWW na komputerze Mac, ponieważ
macosx
dokładnie otagowałeś swój post, instrukcje są podobne dla maszyn z systemem Linux. Na komputerze Mac:Terminal.app
. Jest poniżejApplications->Utilities
.ifconfig
w terminalu. To pokazuje wszystkie interfejsy sieciowe na komputerze. Jedną z nich jest sieć, do której urządzenie jest aktywnie podłączone. Jeśli Mac jest podłączony przewodowo, powinno byćen0
. Zanotuj adres późniejinet
- powinien to być adres, którego używa twoje urządzenie.nc -v 192.168.10.1 3000
.Connection to 192.168.10.1 3000 port [tcp/http] succeeded!
.ctrl-C
aby wyjść z sesji nc.Jeśli nie możesz połączyć się z aplikacją na prawdziwym adresie serwera, oznacza to, że aplikacja nie nasłuchuje pod tym adresem. Musisz zbadać, jak zmienić konfigurację aplikacji, aby zmodyfikować to zachowanie. Ponieważ nie wiem, jaką aplikację uruchamiasz, nie mogę zaoferować żadnych dobrych pomysłów na ten temat.
źródło
Znajdź nazwę komputera Mac za pomocą
hostname
(w wierszu polecenia Terminal) i użyj jej w adresie URL. Np. Http: //Tonys-iMac.local: 3000 /Jeśli z jakiegoś powodu Bonjour nie działa w twoim środowisku, znajdź adres lotniska na komputerze iMac lub MacBook za pomocą
ipconfig getifaddr en1
lub ogólnie z
ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')
źródło
Zasadniczo w ustawieniach zapory można zezwolić określonej aplikacji (np. Ruby) na przyjmowanie połączeń przychodzących. Dodatkowo, aby umożliwić dostęp do świata zewnętrznego (np. Www), musisz przekierować ruch do wewnętrznej bramy: portu za pomocą ustawień routera.
Oto jak to zrobić:
Otwórz port na routerze (przez 192.168.1.1), aby przekierować ruch z twoj_web_ip: port do local_gateway: port
Gotowy. Teraz z komputera zdalnego otwórz przeglądarkę na swój adres IP (znajdź poprzez http://www.whatismyip.com/ ) + port docelowy # powyżej, np. 72.189.194.65:3280, to połączy się z twoim lokalnym 192.168.1.4 : 3000
Uwaga: korzystam z systemu Mac OSX 10.7.5
źródło
127.0.0.1 to adres lokalny, który każdy komputer ma dla siebie. Musisz dowiedzieć się, jaki jest prawdziwy adres IP (lub nazwa hosta / Bonjour) urządzenia. Przejdź do Preferencji systemowych, Sieci i wyszukaj adres IP urządzenia, albo port Ethernet, jeśli korzystasz z kabla, albo lotnisko, jeśli korzystasz z sieci WLAN. Następnie otwórz ten adres wraz z częścią: 3000 w Safari na iPhonie.
źródło
Jeśli aplikacja nasłuchuje tylko w wersji 127.0.0.1:3000, nie można uzyskać do niej dostępu z innego komputera. W tym celu należy zmodyfikować konfigurację, aby nasłuchiwała adresu IP lub 0.0.0.0 (wszystkie dostępne interfejsy). To jest pierwsza opcja.
Drugą opcją jest użycie serwera proxy.
Trzecią opcją jest to, że jeśli możesz ssh z iPhone'a, możesz także użyć przekazywania ssh.
ssh użytkownik @ host -L 3000: 127.0.0.1: 3000
Następnie na telefonie iPhone otwórz 127.0.0.1:3000
źródło
0.0.0.0
! Jak mogłem o tym nie myśleć?Próbowałeś tego, to zadziałało dla mnie (nie jestem z tym związany):
https://github.com/progrium/localtunnel
źródło