Połączyć urządzenie z serwerem localhost na komputerze Mac? [Zamknięte]

102

Jak zezwolić dowolnemu urządzeniu, np. IPhone'owi, na łączenie się przez sieć WLAN z serwerem localhost mojego komputera Mac?

Na moim Macu mam uruchomiony serwer HTTP Node.js „Hello World” , który obsługuje stronę, którą Safari pomyślnie otwiera pod adresem http://localhost:1337. I działa ipconfig getifaddr en1na wyjściach terminala 192.168.1.9.

Jednak Safari na iPhonie i Macu wyświetla komunikat „Safari nie może połączyć się z serwerem”, gdy próbuje się otworzyć http://192.168.1.9:1337.

Myślę, że nie powinno to obejmować przekierowania portów, ponieważ chcę, aby serwer HTTP był dostępny tylko prywatnie, a nie publicznie.

Związane z:

ma11hew28
źródło
1
odpowiedź na pytanie tutaj stackoverflow.com/questions/9304058/…
Andreas Norman
Zaskoczyło mnie, że nie zobaczyłem odpowiedzi takiej jak ta, która zadziałała dla mnie: stackoverflow.com/a/41857012/470749
Ryan

Odpowiedzi:

58

Miałem ten sam problem. Wyłączyłem Wi-Fi na komputerze Mac, a następnie włączyłem je ponownie, co rozwiązało problem. Kliknij Ustawienia> Wyłącz Wi-Fi.

Przetestowałem to, przechodząc do Safari na moim iPhonie i wpisując nazwę hosta lub adres IP. Na przykład: http://<name>.locallubhttp://10.0.1.5

johnnieb
źródło
o dziwo, to zadziałało dla mnie! Wielkie dzięki. Nie rozumiem dlaczego.
Björn Grossmann
4
plus jeden za <name>.local- Nigdy więcej statycznych adresów IP do testowania!
Adam Carter
Spędziłem cały dzień próbując to rozgryźć. Włączenie / wyłączenie WiFi mojego Maca naprawiło to. Dziwne.
oif_vet
Przełączanie Wi-Fi Maca również naprawiło to dla mnie. Zastanawiam się, czy jest to problem z komputerem Mac, czy z routerem, czy z problemem nodejs. Jakieś pomysły?
neoneye
2
http: // <nazwa> .local zadziałał dla mnie. Aby rozwinąć odpowiedź, <nazwa> twojego Maca można znaleźć w Preferencjach systemowych> Udostępnianie . Pod nazwą komputera: można znaleźć Komputery w sieci lokalnej, które mogą uzyskać dostęp do komputera pod adresem: <nazwa> .local
John Lay,
44

Niech twój serwer nasłuchuje 0.0.0.0zamiast localhost.

ma11hew28
źródło
1
Ahhhh dziękuję, to zadziałało dla mnie
jang.
1
Dla każdego, kto ma problemy z innymi odpowiedziami - spróbuj!
Trent
5
Alternatywnie możesz określić 0.0.0.0, aby powiązać bezpośrednio z lokalnym adresem IP. Zapobiegnie problemom, jeśli zmienisz sieć i nie otrzymasz tego samego adresu IP.
Cole Murray
Przepraszam, ale jak dokładnie „masz nasłuchiwać na serwerze”?
gmarais
@ColeMurray, przepraszam za opóźnioną odpowiedź. Dziękuje za twoją sugestię. Właśnie zaktualizowałem moją odpowiedź.
ma11hew 28
31

Mogłem uzyskać dostęp do mojego iPhone'a tylko za pomocą http://name.local:1337. Musisz dodać „.local”. Nazwę komputera można znaleźć w Preferencjach systemowych / udostępnianie / „Nazwa komputera”.

moeamaya
źródło
Próbowałem użyć adresu IP z zaporą ogniową i bez niej oraz wielu innych sugerowanych rozwiązań i jest to jedyne, które działało. Prowadzę lokację localhost na porcie 3000 z ekspresem przy użyciu węzła js.
lostAtSeaJoshua
Możesz również znaleźć swoje „imię”, wpisując whoamije w konsoli.
Jadam
2
@Jadam Ta technika nie działa dla mnie. Mam dwa różne imiona. W przypadku serwera lokalnego działa „Nazwa komputera”.
moeamaya
1
Dla mnie nigdy nigdzie nie dotarłem przy użyciu name.local, jednak użycie rzeczywistego adresu IP zadziałało. Powiedziałbym, aby rozwiązywać problemy przy użyciu konkretnych rzeczywistych adresów IP, w przeciwieństwie do wygody czegoś w rodzaju name.local, co po prostu dodaje kolejną warstwę komplikacji.
MarsAndBack
1
To powinna być akceptowana odpowiedź. Nie wymaga dodatkowej konfiguracji ani modyfikacji bieżącego pliku serwera Node.js. @ ma11hew28
BenS
14

Spróbuj włączyć udostępnianie Internetu:
Otwórz Preferencje systemowe -> Udostępnianie. Zaznacz Udostępnianie Internetu, aby je włączyć, pojawi się monit o potwierdzenie działania, wybierz OK. Jeśli Twój iPhone jest podłączony przez USB, iPhone USB jest zaznaczony na liście „Udostępnianie połączenia” po prawej stronie.
Następnie spróbuj uzyskać dostęp do lokalnego serwera za pomocą adresu IP komputera Mac w sieci Wi-Fi.

maqbulh
źródło
10

Mój problem był ten sam, ale rozwiązanie polegało na zmianie ustawienia zapory. Okazało się, że węzeł został ustawiony na blokowanie ruchu przychodzącego. Wiedziałem, że coś jest nie tak, ponieważ byłem w stanie uzyskać dostęp do mojego serwera lokalnego z telefonu.

Przejdź do Preferencje systemowe -> Bezpieczeństwo i prywatność -> Zapora -> Opcje zapory , a następnie przewiń w dół, aż znajdziesz węzeł i upewnij się, że ustawienie węzła jest ustawione na Zezwalaj na połączenia przychodzące .

Po zmianie ustawień mogłem dotrzeć do serwera localhost (port 3000) działającego na moim Macu, przechodząc pod adres http://192.168.1.11:3000

David Rajcok
źródło
Jedynym winowajcą był firewall. Wszystko inne było w porządku.
mythicalcoder
och chłopcze, uratowałeś mnie! dzięki!!
GoOlga
7

Rozwiązuję podobny problem.

  • podłączony Mac i iPhone do tej samej sieci Wi-Fi
  • zmień ustawienia Wi-Fi iPhone'a, ustaw proxy http na ręczne i zmień serwer na swój adres IP Mac i ustaw port. Mój port ma 80 lat.

obraz pierwszy

obraz drugi

  • możesz wprowadzić http://<Mac ip>:<your customer server port>w safari iPhone'a
HasjOH
źródło
5

Użytkownicy systemu MacOS Sierra mogą znaleźć swój automatycznie wygenerowany skrócony adres URL, przechodząc do System Preferences > Sharingpola tekstowego Nazwa komputera i sprawdzając go. Aby uzyskać do niego dostęp, wprowadź ten adres URL oraz numer portu (np. Twoje-imię.lokalne: 8000) na telefonie iPhone przez to samo połączenie Wi-Fi co komputer.

brogrammer
źródło
5
  1. Podłącz swój iPhone do komputera Mac przez USB.

  2. Przejdź do narzędzia sieciowego (cmd + spacja i wpisz „narzędzie sieciowe”)

  3. Przejdź do zakładki „Informacje”

  4. Kliknij menu rozwijane z napisem „Wi-Fi” i wybierz „iPhone USB”, jak pokazano tutaj:

    Zdjęcie do kroku 4

  5. Znajdziesz adres IP, taki jak „xxx.xxx.xx.xx” lub podobny. Otwórz przeglądarkę Safari na swoim iPhonie i wprowadź adres_IP: numer_portu

    Przykład: 169.254.72.86:3000

[UWAGA: Jeśli pole adresu IP jest puste, upewnij się, że Twój iPhone jest podłączony przez USB, zamknij Narzędzie sieciowe, otwórz je ponownie i sprawdź adres IP.]

arjunkm
źródło
3

Proponuję użyć nazwy komputera np http://mymac:1337/. U mnie działa idealnie bez żadnej konfiguracji i nie muszę przejmować się zmianą adresów IP z powodu DHCP.

stiebitzhofer
źródło
3

Jak opublikowano, podążyłem za odpowiedzią moeamaya, ale musiałem trochę ją zmodyfikować, aby zobaczyć moją pracę w katalogu Witryny.

http://[name].local.~[username]/

[nazwa] jest taka, jak już podano (Preferencje systemowe / udostępnianie / „Nazwa komputera”)

[nazwa użytkownika] znajduje się pod adresem:

/etc/apache2/users/username.conf

mam nadzieję że to pomoże!

naiJenn
źródło
Gdzie mogę znaleźć plik username.conf na komputerze Mac?
ziemniak
1
Poszukaj w swoim folderze / Users w katalogu głównym @brumbrum
Alfred
1
Możesz też napisać whoamiw terminalu
Alfred
3

upewnij się, że telefon i komputer Mac są podłączone do tego samego Wi-Fi i możesz jechać http://<machine-name>.local

Muhaimin
źródło
1

Wypróbowałem wszystko na tej stronie, ale http://<name>.local:<PORT>działałem tylko na moim iPhonie po zamknięciu i ponownym uruchomieniu Safari ...

fizyka AI
źródło
0

Zawsze używaj adresu IP pokazanego w ustawieniach sieci. Zmienia się, gdy zmienisz lokalizację i użyjesz innego połączenia bezprzewodowego.

Na przykład w moim przypadku jest to teraz: 10.0.0.5

edgarascom
źródło
Możesz spróbować, ale to nie zadziała we wszystkich okolicznościach. Zrobiłeś założenie, którego nie widzę w pytaniu o konfiguracji sieci.
benc
Cóż, to założenie pomogło mi wczoraj rozwiązać podobny problem. Nie mogłem znaleźć adresu IP do połączenia. Polecenia terminala nie działały. To, co zadziałało, to adres IP w ustawieniach sieci. (Używam lokalnego serwera Apache na
Macu