Jestem w stanie uzyskać dostęp do mojego serwera internetowego laptopa za pomocą emulatora Androida, używam 10.0.2.2:portno
działa dobrze.
Ale kiedy podłączam mój prawdziwy telefon z Androidem, przeglądarka telefonu nie może połączyć się z tym samym serwerem internetowym na moim laptopie. Telefon jest podłączony do laptopa za pomocą kabla USB. Jeśli uruchomię polecenie urządzeń adb, zobaczę mój telefon.
czego mi brakuje?
Odpowiedzi:
USB nie zapewnia połączenia sieci z urządzeniem mobilnym.
Jeśli zarówno komputer stacjonarny, jak i telefon są podłączone do tej samej sieci Wi-Fi (lub innej sieci lokalnej), użyj adresu IP komputera przypisanego przez router (nie
localhost
i nie127.0.0.1
).Aby znaleźć adres IP komputera:
ipconfig
(Windows) lubifconfig
(Unix)ifconfig | grep "inet " | grep -v 127.0.0.1
przyniesie tylko ważne rzeczylocalhost
i127.0.0.1
)Jeśli telefon jest podłączony do sieci komórkowej , będzie trudniej.
Albo idź hardcore:
<your desktop IP>:<server port number>
W przeciwnym razie użyj czegoś takiego jak xip.io lub ngrok .
UWAGA :
ifconfig
Komenda jest przestarzała i dlatego domyślnie jej brakuje w systemie Debian Linux, zaczynając od wersji Debian. Nową i zalecaną alternatywą do sprawdzania konfiguracji sieci w systemie Debian Linux jest polecenie ip. Na przykład, aby użyć polecenia ip do wyświetlenia konfiguracji sieci, uruchom następujące polecenie:Powyższe polecenie ip może być skrócone do:
Jeśli nadal wolisz używać
ifconfig
jako część codziennej procedury administracyjnej sys, możesz łatwo zainstalować ją jako częśćnet-tools
pakietu.Referencje są tutaj
źródło
To jest właściwie dość proste.
localhost
(używam serwera WAMP dla Windows)Gdy to zrobisz, zobaczysz coś takiego:
192.168.43.76
)Uwaga: Ustaw swoją sieć jako „ Sieć domową ”. Ustawienie sieci jako sieci domowej oznacza, że zezwalasz swojemu komputerowi na udostępnianie rzeczy innym urządzeniom w tej samej sieci.
Jeśli używasz systemu Windows 10, można to zrobić za pomocą następujących czynności:
Jeśli masz problem, najprawdopodobniej dotyczy to Zapory systemu Windows.
źródło
Mac OS X użytkownicy
Osiągnąłem to, umożliwiając zdalne zarządzanie :
System preferences/sharing
Zobaczysz komunikat podobny do tego:
some.url.com
Na urządzeniu z Androidem powinieneś być teraz w stanie przejść do
some.url.com
, do którego deleguje sięlocalhost
na komputerze Mac. Możesz także użyć,ifconfig
aby uzyskać adres IP komputera Mac.Przenośne rozwiązanie z
ngrok
(dowolnym systemem operacyjnym z Node.js)Jeśli nie masz nic przeciwko udostępnieniu swojego projektu tymczasowej domenie, której możesz użyć
ngrok
. Powiedzmy, że mam uruchomioną aplikację,localhost:9460
którą mogę pisaćTo da mi:
Teraz mogę sięgnąć
https://f7c23d14.ngrok.io
jako sposób na zdalne wyświetlanielocalhost
. Wspaniale jest udostępniać klientom prace projektowe lub postępy.Alternatywne rozwiązanie z
nginx
przepustką proxyJeśli prowadzisz coś takiego
nginx proxy_pass
, będzie to wymagało nieco ulepszenia - jest to zuchwałe podejście, ale działa dla mnie i jestem otwarty na sugestie dotyczące poprawy:81
w przeciwieństwie do80
http://youripaddress:81
Załaduj ponownie i odwiedź
http://youripaddress:81
źródło
192.168.0.101
ale nazwa hosta nie działa.Dzięki prostemu rozwiązaniu (tylko dostęp
laptop_ip_addr:port
z urządzenia mobilnego, gdy telefon komórkowy i laptop są w tym samym WiFi), pojawia się błąd ERR_CONNECTION_REFUSED . Oznacza to, że mój MacBook wydaje się odmawiać połączenia z telefonu komórkowego.ADB Reverse Socket (tylko Android)
To rozwiązanie działa dla mnie (testowane na MacBooku):
adb reverse tcp:4000 tcp:4000
4000
http://localhost:4000/
, a ono faktycznie połączy się z laptopem, a nie z urządzeniem mobilnymZobacz instrukcje tutaj .
Minusem jest to, że działa to tylko z jednym urządzeniem mobilnym na raz . Jeśli chcesz uzyskać dostęp za pomocą innego urządzenia mobilnego, musisz najpierw odłączyć pierwsze (wyłączyć debugowanie USB ), podłączyć nowe (włączyć debugowanie USB ) i uruchomić
adb reverse tcp:4000 tcp:4000
ponownie.ngrok (działa ze wszystkimi urządzeniami)
Innym rozwiązaniem, które powinno zawsze działać, jest ngrok (jak wspomniano w innych odpowiedziach). Działa przez Internet, a nie sieć lokalną.
Jest niezwykle łatwy w użyciu:
Daje to, między innymi, informację podobną do linii
Teraz możesz przejść do
http://4cc5ac02.ngrok.io
dowolnego urządzenia podłączonego do Internetu, a ten adres URL przekierowuje dolocalhost:4000
twojego laptopa.Zauważ, że dopóki działa polecenie ngrok (dopóki nie naciśniesz Ctrl-C ), twój projekt jest publicznie obsługiwany. Każdy, kto ma adres URL, może go zobaczyć.
źródło
Znalazłem szybkie rozwiązanie tego problemu. Wypróbuj ten link . Powinno to pomóc rozwiązać problem.
Zmieniłem tylko jedną rzecz, w której samouczek mówi, że zmieniasz „127.0.0.1” na „Wszystkie”, zamiast tego zmienisz go na adres IP, na którym działa serwer.
Następnie powinieneś być w stanie połączyć się z lokalnym hostem.
Poniżej znajduje się (korekta) kopia informacji z połączonej strony:
Krok 1
Zainstaluj serwer Wamp (lub dowolny inny).
Jest to jeden z najlepszych serwerów, jakie znam, aby skonfigurować serwer lokalny. Jeśli zainstalowałeś Apache lub inny serwer, zignoruj ten krok.
Pobierz i zainstaluj Wamp Server stąd.
Krok 2
Dodaj nową regułę dla portu 80 w Zaporze systemu Windows.
Otwórz Panel sterowania i wybierz Zaporę systemu Windows.
Wybierz Ustawienia zaawansowane z lewego panelu strony ustawień Zapory systemu Windows.
Wybierz Reguły przychodzące z lewego panelu, a następnie wybierz Nowa reguła.
Wybierz Port i kliknij Dalej.
Wybierz przycisk opcji „Określone porty lokalne” i wprowadź wartość 80 jako wartość portu.
Pozostaw Zezwalaj na połączenie bez zmian i przejdź do następnego kroku.
Pozostaw opcje profilu bez zmian i kliknij Dalej.
Nadaj nową nazwę swojej nowej zasadzie i kliknij Zakończ.
Umożliwi to dostęp do portu 80 w sieci lokalnej IP.
Krok 3
Edytuj plik httpd.conf serwera Wamp, aby naprawić błąd 403.
Musimy edytować ten plik. W przeciwnym razie otrzymamy błąd 403, gdy uzyskamy dostęp do hosta lokalnego za pośrednictwem adresu IP sieci lokalnej.
Kliknij ikonę zasobnika serwera Wamp.
Otwórz podmenu serwera Apache.
Wybierz httpd.conf.
Znajdź tę sekcję konfiguracji w pliku httpd.conf:
Znajdź i zamień „127.0.0.1” na „Wszystkie”, zapisz plik i uruchom ponownie serwer Wamp.
Krok 4
Znajdź adres IP swojej sieci lokalnej.
Otwórz wiersz polecenia.
Wpisz i wprowadź
ipconfig
polecenie.W moim przypadku mój adres sieci lokalnej to 10.0.0.2.
To jest adres IP, którego potrzebujesz, aby uzyskać dostęp do lokalnego hosta na telefonie z Androidem przez Wi-Fi. Aby sprawdzić, czy działa, wpisz ten adres IP w przeglądarce na komputerze, na którym jest zainstalowany serwer localhost. Przeglądarka powinna pomyślnie wyświetlić stronę localhost. Zapewni to, że ten adres IP sieci lokalnej jest teraz z powodzeniem dostępny na telefonie z Androidem.
Mam nadzieję, że ten samouczek pomoże ci uzyskać dostęp do twojego lokalnego hosta przez Wi-Fi.
źródło
# onlineoffline tag - don't remove Order Allow,Deny Allow from all
W komputerze z systemem Windows może nie być konieczne wykonywanie innych czynności niż znalezienie adresu IPv4 za pomocą polecenia „ipconfig”.
Inne szczegóły env: Windows 7, Google Nexus 4 (4.2.2), Tomcat Server, Grails Application.
Należy również upewnić się, że masz uprawnienia dostępu do Internetu w pliku AndroidManifest:
źródło
java.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Istnieje jednak znacznie lepsze rozwiązanie. Możesz uzyskać dostęp do komputera hosta za pomocą adresu IP „10.0.2.2”. Zostało to zaprojektowane w ten sposób przez zespół Androida. Dzięki temu Twój serwer może doskonale działać na localhost, a z aplikacji na Androida możesz uzyskać do niego dostęp za pośrednictwem „http://10.0.2.2:8080”.
źródło
Ponieważ jest to stare pytanie, istnieje nowy sposób, aby to zrobić, naprawdę bardzo prosty. Pobierz rozszerzenie Chrome ADB, a następnie postępuj zgodnie z tymi instrukcjami:
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
źródło
„Przekazywanie portów w Chrome na Androida ułatwia testowanie witryny programistycznej na urządzeniach mobilnych. Działa poprzez utworzenie nasłuchującego portu TCP na urządzeniu mobilnym, który mapuje na konkretny port TCP na komputerze programistycznym. Ruch między tymi portami odbywa się przez USB, więc połączenie nie zależy od konfiguracji sieci. ”
Więcej informacji tutaj: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding
źródło
To rozwiązanie jest przydatne, gdy urządzenie mobilne i komputer nie znajdują się w tej samej sieci:
W takim przypadku musisz użyć przekierowania portów. W oknie inspekcji Google Chrome (chrome: // inspect) możesz zobaczyć podłączone urządzenia.
Kliknij przycisk przeglądania portów i ustaw losowy port, powiedz 3000, na port, z którego korzysta Twój laptop, powiedzmy 8080.
teraz użyj localhost: 3000 z urządzenia, aby uzyskać dostęp do localhost: 8080 (or_whthing_ip: portno) na laptopie. Możesz to sprawdzić w przeglądarce mobilnej. Wypróbuj localhost: 3000 w przeglądarce mobilnej. Pamiętaj, aby zaznaczyć pole wyboru „Włącz przekierowanie portów” w oknie „Ustawienia przekierowania portów”
źródło
Uruchom CMD jako administrator
a na ekranie CMD wpisz ipconfig, a na ekranie pojawi się tekst
jak to zdjęcie
i możesz uzyskać dostęp do lokalnego hosta za pomocą tego adresu IP, z którym musisz być podłączony do tej samej sieci, do której podłączony jest komputer
źródło
Być może serwer sieciowy nasłuchuje na interfejsie pętli zwrotnej, a nie na interfejsie sieciowym. Główne oznaki tego to:
127.0.0.1
ilocalhost
(z lokalnego hosta lub emulatora Androida) działają192.168.xxx.xxx
nie działają, czy to z hosta lokalnego, LAN czy WANMówię więcej o diagnozowaniu tego i naprawianiu tego w odpowiedzi tutaj .
źródło
Spróbuj przejść do tego pliku:
C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf
I zmień 10.0.2.2 na swój adres IP.
źródło
wreszcie zrobione w Ubuntu, uruchamiam serwer nodejs na localhost: 8080
1) otwórz typ terminala, jeśli otrzymasz ip coś takiego: inet addr: 192.168.43.17
2) teraz po prostu podaj adres URL w następujący sposób: „192.168.43.17:8080” (port 8080 pochodzący z numeru portu hosta lokalnego) np .: „192.168.43.17:8080/fetch”
źródło
Użyj tego w swoim Ubuntu / Macbook, aby uzyskać adres IP swojego systemu. Twój telefon i system powinny znajdować się w tej samej sieci
ip addr | grep inet
To da ci adres IP, który wygląda192.168.168.46
. Użyj tego w swoim smartfonie.Mam nadzieję że to pomoże.
źródło
Użyłem tego procesu:
Pamiętaj, że ten proces wymaga zmiany ustawień Wi-Fi na urządzeniu z Androidem na początku i na końcu każdej sesji. Uznałem to za mniej bolesne niż rootowanie mojego urządzenia z Androidem.
źródło
Wystąpił ten problem przy użyciu kilku różnych serwerów localhost. W końcu uruchomiłem moją aplikację na telefonie w kilka sekund, używając prostego serwera Python. Zajmuje to tylko kilka sekund, więc warto spróbować, zanim przejdziemy do bardziej skomplikowanych rozwiązań. Najpierw upewnij się, że masz zainstalowany Python.
cmd+r
i wpiszpython
dla Windows lub$ python --version
w terminalu Mac.Kolejny:
Następnie po prostu znajdź adres swojej maszyny hosta w sieci, której szukałem
System Preferences/Sharing
na komputerze Mac. Stuknij w to urządzenie z Androidem i powinno się załadowaćindex.html
a powinieneś być dobry.Jeśli nie, problem jest czymś innym i możesz zajrzeć do innych sugerowanych rozwiązań. Powodzenia!
* EDYTOWAĆ *
Innym szybkim rozwiązaniem, które możesz wypróbować, jeśli używasz Chrome, jest rozszerzenie Web Server for Chrome. Uznałem, że to szybki i super łatwy sposób na uzyskanie dostępu do localhost na moim telefonie. Wystarczy sprawdzić
Accessible to local network
podOptions
i powinien on działać na twojej komórce bez problemu.źródło
ngrok pozwala umieścić lokalnego hosta na serwerze tymczasowym i jest bardzo prosty w konfiguracji. Podałem tutaj kilka kroków, które można znaleźć w linku:
ngrok http [port number]
W swoim terminalu zobaczysz mały pulpit nawigacyjny z adresem wskazującym na lokalnego hosta. Skieruj aplikację na ten adres i zbuduj na swoim urządzeniu.
źródło
Przede wszystkim podłącz telefon i komputer do wspólnego Wi-Fi.
Następnie otwórz wiersz polecenia, używając polecenia Uruchom jako administrator
Podaj polecenie ipconfig
Który pokazuje bezprzewodowy LAN IP
Użyj ip: portu swojego serwera, aby uzyskać dostęp do telefonu
źródło
Najprostszym sposobem na domyślny localhost jest użycie http: // localhost: port . Działa to również na laptopie i Androidzie.
Jeśli to nie działa, w systemie Android ustaw domyślny adres IP telefonu na 127.0.0.1:port :)
Otwórz terminal i wpisz: -
źródło
Przede wszystkim ustaw statyczny adres IP komputera (na którym działa serwer). Wpisz ten statyczny adres IP w kodzie Androida. Następnie przejdź do interfejsu routera Wi-Fi i sprawdź lewy panel. Zobaczysz opcję taką jak przekierowanie / przekierowanie portów. Kliknij i prześlij port 80. Teraz edytuj
htttpd.conf
plik i edytuj goAllow from All
. Uruchom ponownie serwer. Teraz wszystko powinno działać dobrze.
Dodatkowo możesz zarezerwować adres IP swojego urządzenia, aby zawsze był przydzielany użytkownikowi. W lewym panelu interfejsu routera znajdź
DHCP -> Address Reservation
i kliknij go. Wprowadź adres MAC urządzenia i adres IP, który wpisałeś w kodzie. Kliknij Zapisz. To zarezerwuje podany adres IP dla twojego urządzenia.źródło
Rozwiązanie do połączenia mojego urządzenia mobilnego z moim serwerem Wamp opartym na moim laptopie:
Po pierwsze, wifi nie jest routerem. Aby połączyć urządzenie mobilne z serwerem Wamp opartym na localhost na moim laptopie, potrzebuję routera. Pobrałem i zainstalowałem bezpłatny router wirtualny: https://virtualrouter.codeplex.com/
Konfiguracja jest bardzo prosta:
Następnie możesz połączyć się z laptopem za pomocą urządzenia, uruchamiając przeglądarkę i wypełniając adres IPV4 laptopa (aby go znaleźć w systemie Windows, wpisz cmd: ipconfig i znajdź adres ipv4)
Powinieneś zobaczyć swoją stronę główną serwera wamp.
źródło
Chociaż jedna odpowiedź została zaakceptowana, ale zadziałało to dla mnie:
ifconfig
wewnątrz terminala i poszukajen0/en1 -> inet
, powinno to być coś podobnego19*.16*.1.4
.) (w systemie Windows użyj `ipconfig)Otwórz ustawienia telefonu komórkowego i przejdź do sieci-> naciśnij długo sieć Wi-Fi-> zmodyfikuj sieć -> przewiń w dół do opcji zaawansowanych -> wybierz ręczną konfigurację proxy i w nazwie hosta proxy wpisz swój adres, tzn.
19*.16*.1.4
Wewnątrz portu wpisz swój port. i zapisz to.wyszukaj
what is my ip
w Google Chrome i uzyskaj swój adres IP, powiedzmy, że tak1**.1**.15*.2**
1**.1**.15*.2**:port/
z urządzenia mobilnego.To takie proste.
źródło
To działało dla mnie, dodałem kolejną linię po IP 127.0.0.1, aby określić dokładny adres IP sieci lokalnej (nie publiczny adres IP) urządzenia, którego chciałem użyć. W moim przypadku mój Samsung Galaxy S3
Zgodnie z sugestią Bangptit edytuj plik httpd.conf (x to numery wersji): C: \ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf
Wyszukaj tag onlineoffline i dodaj adres IP swojego telefonu (adres IP moich telefonów znalazłem na stronach konfiguracji routerów):
tag onlineoffline - nie usuwaj
moje telefony ip w linii poniżej
Można to rozszerzyć o całą subdomenę, np. 192.168.1.0/24 itp
źródło
Najłatwiejszym sposobem (to działało dla mnie bezbłędnie) jest lokalne hostowanie witryny
0.0.0.0:<port_no>
i uzyskiwanie do niej dostępu za pomocą urządzeń mobilnych, korzystanie<local_ipv4_address>:<port_no>/<path>
z przeglądarki.ipconfig
cmdźródło
Ngrok jest najlepszym rozwiązaniem. Jeśli tworzysz PHP, polecam instalację Laravel Valet , Ma wersje MacOS i Linux, możesz użyć
valet share
polecenia. Jeśli rozwijasz jakąkolwiek technologię frontendową i chcesz udostępnić port jak 3000, skorzystaj bezpośrednio z ngrokngrok http 3000
źródło
Dodanie rozwiązania dla przyszłych programistów.
Skopiuj adres swojego adresu IP. kliknij prawym przyciskiem myszy swoją sieć -> sieć i udostępnianie-> kliknij połączenie, które aktualnie masz-> szczegóły-> następnie adres obok adresu ipv4 jest twoim adresem ip, zanotuj to gdzieś w dół
Przejdź do panelu sterowania -> system i zabezpieczenia -> zapora systemu Windows -> ustawienia zaawansowane -> reguły ruchu przychodzącego -> nowe reguły (postępuj zgodnie z instrukcjami, aby dodać port np. 80, jego naprawdę łatwo jest podążać)
umieść zapisany w przeglądarce adres IP i numer portu, dla którego utworzono regułę. np. 192.168.0.2:80 i wala.
Możliwe rozwiązanie, jeśli się nie połączy. kliknij prawym przyciskiem myszy sieć-> otwórz sieć i udostępnianie-> spójrz pod wyświetl aktywne połączenia, pod nazwą swojego połączenia, na typ połączenia i kliknij je, jeśli jest publiczne, i upewnij się, aby zmienić je na sieć domową.
źródło
Inną sprawą do sprawdzenia jest to, że niektóre routery mają problemy z mostkowaniem żądań, gdy zarówno 2.4G, jak i 5G są włączone, a urządzenia pracują na różnych częstotliwościach. Próbuję wyłączyć jedną z częstotliwości, aby oba urządzenia były podłączone do tego samego interfejsu.
źródło
użyj
connectify
ixampp
lub równoważnego, i wpisz adres IP na pasku adresu URL telefonu, aby uzyskać dostępźródło
Osobiście nie nalegam na użycie localhost podczas korzystania z urządzenia, nie ma łatwego rozwiązania.
Wystarczy rozpocząć działanie, w którym łączysz się z hostem lokalnym, gdzie możesz użyć emulatora. Wszelkie informacje, które musisz uzyskać z urządzenia, można łatwo wygenerować i przesłać do działania jako parametr.
źródło