Jak mogę uzyskać dostęp do mojego lokalnego hosta z mojego urządzenia z Androidem?


542

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?




3
Wyłącz zaporę podczas testowania strony internetowej lub dodaj swój ip do zaufanych sieci w ustawieniach zapory.
zeeali


souper ez with ngrok
JonPizza

Odpowiedzi:


401

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 localhosti nie127.0.0.1 ).

Aby znaleźć adres IP komputera:

  • wpisz w wierszu polecenia ipconfig(Windows) lubifconfig (Unix)
    • w Linuksie one-liner ifconfig | grep "inet " | grep -v 127.0.0.1 przyniesie tylko ważne rzeczy
    • istnieje wiele sugestii, jak uzyskać podobne wyniki w systemie Windows
  • będzie kilka adresów IP
  • wypróbuj wszystkie (oprócz wyżej wymienionych localhosti 127.0.0.1)

Jeśli telefon jest podłączony do sieci komórkowej , będzie trudniej.

Albo idź hardcore:

  • najpierw sprawdź zewnętrzny adres IP routera ( https://www.google.de/search?q=myip )
  • następnie na routerze przekieruj port do <your desktop IP>:<server port number>
  • na koniec użyj zewnętrznego adresu IP i przekierowanego portu

W przeciwnym razie użyj czegoś takiego jak xip.io lub ngrok .

UWAGA : ifconfigKomenda 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:

ip address

Powyższe polecenie ip może być skrócone do:

ip a

Jeśli nadal wolisz używać ifconfigjako część codziennej procedury administracyjnej sys, możesz łatwo zainstalować ją jako część net-toolspakietu.

apt-get install net-tools

Referencje są tutaj


Dzięki, to była dla mnie wielka pomoc. Problem polegał na tym, że nie wiedziałem, że lokalny serwer Apache można rozwiązać za pomocą IP 10.0.2.2. ... Próbuję wielu innych adresów IP, takich jak ten pokazany przez ipconfig itp. Ale jeszcze raz, dziękuję bardzo!
Vidar Vestnes,

4
Nie rozumiem tego rozwiązania problemu. Czy możesz mi pomóc w tym, jak mój telefon może uzyskać dostęp do mojego serwera? Mam nadzieję, że podasz mi to rozwiązanie. Dzięki.
iremce

1
Przeczytaj mój komentarz poniżej. Musisz także mieć pozwolenie na dostęp do Internetu. <używa-uprawnień android: nazwa = "android.permission.INTERNET" />
Sanjay Kumar

3
@simo przejdź do strony głównej routera, 10.0.0.1 dla XFinity, zwykle jednak 192.168.1.1 i zaloguj się, poszukaj podłączonych urządzeń lub lokalnych adresów IP, znajdź swój komputer i bam. Mój był 10.0.0. #, A następnie po prostu dodaj [10.0.0. # :( port) / Server / Servlet] lub cokolwiek innego
jp093121

2
To nie powinna być zaakceptowana odpowiedź na to pytanie. Przekazywanie portów w devtools Chrome i adb reverse działa idealnie dobrze z kablem USB.
Roger Madsen

228

To jest właściwie dość proste.

  • Włącz hotspot Wi-Fi swojego telefonu / routera z Androidem i podłącz laptopa do telefonu
  • Uruchom serwer o localhost (używam serwera WAMP dla Windows)
  • Teraz otwórz wiersz polecenia i naciśnij klawisz Enter
ipconfig

Gdy to zrobisz, zobaczysz coś takiego:

Adapter bezprzewodowej sieci LAN Bezprzewodowe połączenie sieciowe:
  Sufiks DNS specyficzny dla połączenia. :
  Link-lokalny adres IPv6. . . . . : fe80 :: 80bc: e378: 19ab: e448% 11
  Adres IPv4. . . . . . . . . . . : 192.168.43.76
  Maska podsieci . . . . . . . . . . . : 255.255.255.0
  Brama domyślna . . . . . . . . . : 192.168.43.1
  • Skopiuj adres IPv4 (w tym przypadku jest 192.168.43.76)
  • W przeglądarce mobilnej po prostu wklej adres IPv4

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:

  • Otwórz ustawienia
  • Przejdź do sieci i Internetu
  • Wybierz WiFi w lewym menu
  • Stuknij nazwę podłączonego WiFi
  • Ustaw Profil sieciowy na Prywatny

Jeśli masz problem, najprawdopodobniej dotyczy to Zapory systemu Windows.

  • Otwórz Panel sterowania
  • Przejdź do Zapory systemu Windows Defender
  • Stuknij w Zezwalaj na aplikację lub funkcję za pomocą Zapory systemu Windows Defender
  • Sprawdź, czy aplikacja jest włączona dla sieci prywatnych (powinien być zaznaczony)
  • Jeśli jest nie włączona, stuknij Zmień ustawienia i zaznaczyć pole wyboru pod Private dla aplikacji

30
hm to zrobiło, ale ładowanie przeglądarki wydaje się trwać wiecznie, a wtedy daje mi awans? czy robię coś źle? A co rozumiesz przez sieć domową
Lion789

12
Pamiętaj również o wyłączeniu zapory na komputerze.
Minh Nguyen,

2
Tak, wyłączenie firewalla pomogło. Dzięki.
Beemo,

2
* Jest to sieć domowa (: sieć domowa oznacza, że ​​Twój komputer może udostępniać rzeczy urządzeniom tej samej sieci.
Leap Hawk,

6
„Stuknij pozycję Zezwalaj aplikacji lub funkcji za pomocą Zapory systemu Windows Defender. Sprawdź, czy aplikacja jest włączona w sieciach prywatnych (powinien być zaznaczony)”. Którą aplikację masz na myśli?
Liz Lamperouge,

71

Mac OS X użytkownicy

Osiągnąłem to, umożliwiając zdalne zarządzanie :

  • Upewnij się, że telefon i laptop są podłączone do tej samej sieci Wi-Fi
  • Na komputerze Mac przejdź do System preferences/sharing
  • Włącz zdalne zarządzanie

Zobaczysz komunikat podobny do tego:

  • Inni użytkownicy mogą zarządzać komputerem przy użyciu adresu some.url.com

Na urządzeniu z Androidem powinieneś być teraz w stanie przejść do some.url.com, do którego deleguje się localhostna komputerze Mac. Możesz także użyć, ifconfigaby 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:9460którą mogę pisać

npm install ngrok -g

ngrok http 9460

To da mi:

Status sesji online
Dostępna aktualizacja aktualizacji (wersja 2.2.8, Ctrl-U do aktualizacji)
Wersja 2.2.3
Region Stany Zjednoczone (us)
Interfejs sieciowy http://127.0.0.1:4040
Przekazywanie http://f7c23d14.ngrok.io -> localhost: 9460
Przekazywanie https://f7c23d14.ngrok.io -> localhost: 9460

Połączenia TTL OPN RT1 RT5 P50 P90
                              0 0 0,00 0,00 0,00 0,00

Teraz mogę sięgnąć https://f7c23d14.ngrok.iojako sposób na zdalne wyświetlanie localhost. Wspaniale jest udostępniać klientom prace projektowe lub postępy.


Alternatywne rozwiązanie z nginxprzepustką proxy

Jeś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:

  • Włącz zdalne zarządzanie (jak wspomniano powyżej)
  • Tymczasowo ustaw serwer, aby nasłuchiwał na porcie 81w przeciwieństwie do80
  • Wpisz następujące polecenie:
sudo nginx -s reload
  • Odwiedzić http://youripaddress:81
server {
  listen 80;
  listen 81;   # <-------- add this to expose the app on a unique port
  server_name  ~^(local|local\.m).example.com$;
  # ...
}

Załaduj ponownie i odwiedź http://youripaddress:81


2
Jeśli korzystasz z tej konfiguracji „zdalnego zarządzania”, inną pomocną rzeczą jest wiedzieć, jeśli masz wiele aliasowanych serwerów działających w mampie, twoje urządzenie mobilne (połączone przez usb) da ci dostęp tylko do pierwszego <VirtualHost>, który jest zdefiniowane w httpd-vhosts.conf, więc po prostu przenieś swój bieżący projekt na szczyt listy
DrewT

Włączyłem zdalne zarządzanie na moim komputerze Mac, jak powiedziałeś, i dostałem inny zestaw pól wyboru na różne sposoby, którymi można zdalnie zarządzać moim komputerem. Zostawiłem je wszystkie niezaznaczone, z wyjątkiem Observe, i działało to dla mnie dobrze. Mój serwer WWW działał na moim komputerze Mac na porcie hosta lokalnego 5555 i zobaczyłem, że „inni użytkownicy mogą zarządzać twoim komputerem przy użyciu adresu 10.0.0.12”, więc w przeglądarce telefonu wpisałem 10.0.0.12:5555 i zobaczyłem moją stronę internetową.
Marcus

Działa, gdy używany jest adres IP, 192.168.0.101ale nazwa hosta nie działa.
Krishnadas PC,

6
Na komputerze Mac wystarczy ALT + kliknąć Wi-Fi na pasku menu, aby uzyskać adres IP.
matharden

Wyłączyłem zaporę ogniową, ale nadal pokazuje odrzucone połączenie, masz pomysł, jak to zrobić?
Unnikrishnan

67

Dzięki prostemu rozwiązaniu (tylko dostęp laptop_ip_addr:portz 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):

  1. Podłącz urządzenie mobilne z systemem Android za pomocą kabla USB do laptopa
  2. Włącz debugowanie USB na urządzeniu mobilnym
  3. Uruchom na laptopie adb reverse tcp:4000 tcp:4000
    • Zamiast tego użyj swojego niestandardowego numeru portu 4000
  4. Teraz na urządzeniu mobilnym możesz nawigować do http://localhost:4000/ , a ono faktycznie połączy się z laptopem, a nie z urządzeniem mobilnym

Zobacz 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:4000ponownie.


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:

brew cask install ngrok
ngrok http 4000

Daje to, między innymi, informację podobną do linii

Forwarding                    http://4cc5ac02.ngrok.io -> localhost:4000

Teraz możesz przejść do http://4cc5ac02.ngrok.io dowolnego urządzenia podłączonego do Internetu, a ten adres URL przekierowuje do localhost:4000twojego 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ć.


2
uratowałeś mi życie koleś
Być

Dziękuję Ci. Bardzo mi pomogłeś. Użyłem adb reverse tylko zastępując 4000 portów do 3000 i działało tak, jak potrzebowałem.
Marcus Crisostomo

cholera, która w końcu zadziałała, dzięki!
Alex

38

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.

  1. Otwórz Panel sterowania i wybierz Zaporę systemu Windows.

  2. Wybierz Ustawienia zaawansowane z lewego panelu strony ustawień Zapory systemu Windows.

  3. Wybierz Reguły przychodzące z lewego panelu, a następnie wybierz Nowa reguła.

  4. Wybierz Port i kliknij Dalej.

  5. Wybierz przycisk opcji „Określone porty lokalne” i wprowadź wartość 80 jako wartość portu.

  6. Pozostaw Zezwalaj na połączenie bez zmian i przejdź do następnego kroku.

  7. Pozostaw opcje profilu bez zmian i kliknij Dalej.

  8. 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.

  1. Kliknij ikonę zasobnika serwera Wamp.

  2. Otwórz podmenu serwera Apache.

  3. Wybierz httpd.conf.

  4. Znajdź tę sekcję konfiguracji w pliku httpd.conf:

    Directory c:/wamp/www/”
    #
    # Possible values for the Options directive are “None”, “All”,
    # or any combination of:
    # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that “MultiViews” must be named *explicitly* — “Options All”
    # doesn’t give it to you.
    #
    # The Options directive is both complicated and important. Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be “All”, “None”, or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride all
    
    #
    # Controls who can get stuff from this server.
    #
    
    # onlineoffline tag – don’t remove
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1

Znajdź i zamień „127.0.0.1” na „Wszystkie”, zapisz plik i uruchom ponownie serwer Wamp.

Krok 4

Znajdź adres IP swojej sieci lokalnej.

  1. Otwórz wiersz polecenia.

  2. Wpisz i wprowadź ipconfigpolecenie.

  3. 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.


Dzięki! to działało tak łatwo. Jeszcze jedna rzecz; Zostawiłem httpd.conf as# onlineoffline tag - don't remove Order Allow,Deny Allow from all
numediaweb

1
samouczek jest oparty na systemie Windows? wut?
abbood

1
link już nie działa, więc cała odpowiedź jest teraz bezużyteczna, ponieważ do SO nie dodano informacji o tym, jak to zrobić.
rtack

W przypadku serwera Wamp v3 dostałem niedozwolony błąd. Sprawdź tę odpowiedź stackoverflow.com/questions/23382627/... jak zmienić informacje o vhostach (nie edytuj pliku httpd.conf jak pokazano powyżej)
friek108

To naprawdę stara wersja Wampa, pliki konfiguracyjne są teraz nieco bardziej skomplikowane. Zwłaszcza jeśli korzystasz z funkcji VHosts. Nie mogę tego rozgryźć, zbyt wiele warstw przesłonięć.
Jonathan

37

W komputerze z systemem Windows może nie być konieczne wykonywanie innych czynności niż znalezienie adresu IPv4 za pomocą polecenia „ipconfig”.

  • Krok 1: Podłącz telefon do komputera za pomocą kabla USB.
  • Krok 2: Użyj polecenia „ipconfig”, aby znaleźć swój adres IPv4 (zewnętrzny adres IP routera), np. 192.168.1.5 w moim przypadku.
  • Krok 3: Wystarczy otworzyć „192.168.1.5:8080” w przeglądarce telefonu. To działa !

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:

<uses-permission android:name="android.permission.INTERNET"/>

Próbowałem, ale ciągle pojawia się komunikat „Odmowa połączenia”. Dlaczego? :( Czy port musi mieć numer 8080? Obecnie moja usługa internetowa działa na innym porcie.
Triet Doan

2
Używałem tomcat na porcie 8080. Możesz dołączyć własny port serwera zamiast 8080.
Sanjay Kumar

a co z aplikacją internetową? nie natywna aplikacja
amdev

Nadal nie mam dostępu do mojego lokalnego hosta
Anna Leonenko

Próbowałem, ale mówijava.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Moeez

16

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”.


4
prawda, sztuczka polega na określeniu lokalnego adresu IP maszyny i dostęp do niego za pośrednictwem routera bezprzewodowego podłączonego między urządzeniem z systemem Android a komputerem, czyli systemem aka
Akhil Jain,

Świetnie, szukałem właśnie tego, aby komunikować się z emulatorem z localhost. Dzięki!!
Eagle

13

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


3
Nie ma potrzeby pobierania ADB, ponieważ jest on przestarzały, ale przejdź do developers.google.com/chrome-developer-tools/docs/… i postępuj zgodnie z instrukcjami. Uwaga: Musiałem przekierować port 8443 na localhost: 8443
Dimitris

czy działa to tylko w przypadku połączeń URL z Chrome na urządzeniu, czy też powinno działać również z poziomu mojej aplikacji?
Orkun Ozen

3
To postawiło mnie na dobrej drodze - bardziej aktualną odpowiedź na temat Chrome Dev Tools można znaleźć tutaj: Android Chrome Reverse Port Forwarding
Richard Le Mesurier

Utknąłem, ponieważ nie miałem zainstalowanego Google Chrome na moim urządzeniu. Doh!
Chad Bingham,

9

„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


9

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. wprowadź opis zdjęcia tutaj

Kliknij przycisk przeglądania portów i ustaw losowy port, powiedz 3000, na port, z którego korzysta Twój laptop, powiedzmy 8080.

wprowadź opis zdjęcia tutaj

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”


Kocham Cie stary! Musisz napisać samouczek z tymi krokami!
Rafael Gomes Francisco

7

Uruchom CMD jako administrator

a na ekranie CMD wpisz ipconfig, a na ekranie pojawi się tekst

jak to zdjęcie wprowadź opis zdjęcia tutaj

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


po prostu wyłącz zaporę ogniową
SalindaKrish

6

Być może serwer sieciowy nasłuchuje na interfejsie pętli zwrotnej, a nie na interfejsie sieciowym. Główne oznaki tego to:

  • Odsłon 127.0.0.1ilocalhost (z lokalnego hosta lub emulatora Androida) działają
  • Trafienia 192.168.xxx.xxxnie działają, czy to z hosta lokalnego, LAN czy WAN

Mówię więcej o diagnozowaniu tego i naprawianiu tego w odpowiedzi tutaj .


6

Spróbuj przejść do tego pliku: C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf

#   onlineoffline tag - don't remove
    Order Deny,Allow
    Allow from all // change it Deny
    Allow from 127.0.0.1

I zmień 10.0.2.2 na swój adres IP.


przepraszam zmiana, aby zezwolić na tworzenie wszystkich, jeśli jest to „Odmów”
bangptit

Używam XAMPP, a ten film dał mi odpowiedź, aby go uruchomić: youtube.com/watch?v=YrA_yN3gySs
Leon

5

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”


działa to tylko dla mnie po podłączeniu do tej samej sieci. Potrzebuję czegoś, co działa bez internetu
Geek Guy

5

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 inetTo da ci adres IP, który wygląda 192.168.168.46. Użyj tego w swoim smartfonie.

Mam nadzieję że to pomoże.


4

Użyłem tego procesu:

  • Zainstaluj Fiddler na komputerze
  • Skonfiguruj komputer i urządzenie z Androidem, postępując zgodnie z tymi doskonałymi instrukcjami
  • Wystarczy przejść do przeglądarki na urządzeniu z Androidem i wpisać http: //ipv4.fiddler, aby uzyskać dostęp do hosta lokalnego

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.


3

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+ri wpisz pythondla Windows lub$ python --version w terminalu Mac.

Kolejny:

cd <your project root>

$ python -m SimpleHTTPServer 8000

Następnie po prostu znajdź adres swojej maszyny hosta w sieci, której szukałem System Preferences/Sharingna 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 networkpod Optionsi powinien on działać na twojej komórce bez problemu.

wprowadź opis zdjęcia tutaj


Czy będzie działać dla innych języków po stronie serwera niż Python?
MAJ

3

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:

  1. Pobierz ngrok zip z linku powyżej
  2. Otwórz zamek błyskawiczny
  3. Uruchom serwer lokalnie i zanotuj numer portu
  4. W terminalu przejdź do folderu, w którym mieszka ngrok, i wpisz 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.


Jest to przydatne tylko w przypadku uzyskiwania dostępu do serwera na zewnątrz. Możesz po prostu użyć lokalnego adresu IP serwera.
OneCricketeer

3

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


3

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: -

 hostname -i
 #127.0.0.1
 hostname -I
 #198.168.*.*

2

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.confplik i edytuj go

Allow 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 Reservationi 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.


2

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:

  1. kliknij prawym przyciskiem myszy ikonę routera wirtualnego w zasobniku systemowym
  2. kliknij Konfiguruj router wirtualny
  3. wpisz hasło
  4. jeśli twoje połączenie internetowe jest w sieci Ethernet, wybierz Połączenie współdzielone: ​​Ethernet
  5. Następnie włącz Wi-Fi na laptopie i urządzeniu
  6. Na urządzeniu połącz się z nazwą sieci routera wirtualnego

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.


2

Chociaż jedna odpowiedź została zaakceptowana, ale zadziałało to dla mnie:

  1. Upewnij się, że zarówno komputer, jak i urządzenie z Androidem są w tej samej sieci.
  2. uzyskaj adres IP swojego komputera. (w przypadku typu mac ifconfigwewnątrz terminala i poszukaj en0/en1 -> inet, powinno to być coś podobnego 19*.16*.1.4.) (w systemie Windows użyj `ipconfig)
  3. 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.4Wewnątrz portu wpisz swój port. i zapisz to.

  4. wyszukaj what is my ipw Google Chrome i uzyskaj swój adres IP, powiedzmy, że tak1**.1**.15*.2**

  5. spróbuj uzyskać dostęp 1**.1**.15*.2**:port/z urządzenia mobilnego.

To takie proste.


Nie potrzebujesz proxy przez WiFi, a także zewnętrznego adresu IP w sieci lokalnej
OneCricketeer

2

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

 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1

moje telefony ip w linii poniżej

 Allow from 192.168.1.65 
 Allow from ::1
 Allow from localhost

Można to rozszerzyć o całą subdomenę, np. 192.168.1.0/24 itp


2

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.

  • Aby poznać swój lokalny adres IPv4, po prostu wpisz ipconfigcmd
  • Dowolne urządzenie podłączone do tej samej sieci może uzyskać dostęp do tego adresu URL.

2

Ngrok jest najlepszym rozwiązaniem. Jeśli tworzysz PHP, polecam instalację Laravel Valet , Ma wersje MacOS i Linux, możesz użyć valet sharepolecenia. Jeśli rozwijasz jakąkolwiek technologię frontendową i chcesz udostępnić port jak 3000, skorzystaj bezpośrednio z ngrokngrok http 3000


1

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ą.


1

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.



0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.