Wie kann ich von meinem Android-Gerät aus auf meinen localhost zugreifen?


542

Ich kann mit dem Android-Emulator auf meinen Laptop-Webserver zugreifen. Ich verwende 10.0.2.2:portno funktioniert gut.

Wenn ich jedoch mein echtes Android-Telefon anschließe, kann der Telefonbrowser keine Verbindung zum gleichen Webserver auf meinem Laptop herstellen. Das Telefon wird über ein USB-Kabel mit dem Laptop verbunden. Wenn ich den Befehl adb Geräte ausführe, kann ich mein Telefon sehen.

Was vermisse ich?




3
Schalten Sie die Firewall aus, während Sie Ihre Webseite testen, oder fügen Sie Ihre IP in den Firewall-Einstellungen zu den vertrauenswürdigen Netzwerken hinzu.
Zeeali


souper ez mit ngrok
JonPizza

Antworten:


402

USB bietet kein Netzwerk für mobile Geräte.

Wenn sowohl Ihr Desktop als auch Ihr Telefon mit demselben WLAN (oder einem anderen lokalen Netzwerk) verbunden sind, verwenden Sie Ihre vom Router zugewiesene Desktop-IP-Adresse (nicht localhostund nicht 127.0.0.1).

So ermitteln Sie die IP-Adresse Ihres Desktops:

  • Geben Sie in die Befehlszeile ipconfig(Windows) oder ifconfig(Unix) ein.
    • Unter Linux ifconfig | grep "inet " | grep -v 127.0.0.1liefert der Einzeiler nur das Wichtige
    • Es gibt eine Reihe von Vorschlägen, wie eine ähnliche Ausgabe unter Windows erstellt werden kann
  • Es wird eine Menge IPs geben
  • probieren Sie alle aus (außer den oben genannten localhostund 127.0.0.1)

Wenn Ihr Telefon mit dem Mobilfunknetz verbunden ist , wird es schwieriger.

Entweder gehen Hardcore:

  • Ermitteln Sie zuerst die externe IP-Adresse Ihres Routers ( https://www.google.de/search?q=myip ).
  • Leiten Sie dann auf dem Router einen Port an weiter <your desktop IP>:<server port number>
  • Verwenden Sie schließlich die externe IP-Adresse und den weitergeleiteten Port

Verwenden Sie andernfalls etwas wie xip.io oder ngrok .

HINWEIS : Der ifconfigBefehl ist veraltet und fehlt daher standardmäßig unter Debian Linux, beginnend mit Debian Stretch. Die neue und empfohlene Alternative zum Überprüfen einer Netzwerkkonfiguration unter Debian Linux ist der Befehl ip. Um beispielsweise den Befehl ip zum Anzeigen einer Netzwerkkonfiguration zu verwenden, führen Sie Folgendes aus:

ip address

Der obige IP-Befehl kann wie folgt abgekürzt werden:

ip a

Wenn Sie es immer noch vorziehen, es ifconfigals Teil Ihrer täglichen Systemadministrationsroutine zu verwenden, können Sie es einfach als Teil des net-toolsPakets installieren .

apt-get install net-tools

Referenz ist hier


Danke, das war eine große Hilfe für mich. Das Problem für mich war, dass ich nicht wusste, dass der lokale Apache-Server über die IP 10.0.2.2 angesprochen werden kann. ... Ich probiere viele andere IP-Adressen aus, wie die von ipconfig usw. Aber nochmals vielen Dank!
Vidar Vestnes

4
Ich verstehe diese Problemlösung nicht. Können Sie mir helfen, wie mein Telefon auf meinen Server zugreifen kann? Ich hoffe, Sie konkretisieren diese Lösung für mich. Vielen Dank.
iremce

1
Lesen Sie meinen Kommentar unten. Sie müssen auch über eine Internetzugangsberechtigung verfügen. <Verwendet-Erlaubnis android: name = "android.permission.INTERNET" />
Sanjay Kumar

3
@simo Gehen Sie zu Ihrer Router-Homepage, 10.0.0.1 für XFinity, normalerweise 192.168.1.1, und melden Sie sich an, suchen Sie nach verbundenen Geräten oder lokalen IPs, suchen Sie Ihren Computer und bam. Meins war 10.0.0. #, Dann füge einfach [10.0.0. # :( Port) / Server / Servlet] oder was auch immer hinzu
jp093121

2
Dies sollte nicht die akzeptierte Antwort auf diese Frage sein. Die Portweiterleitung in Chrome devtools und adb reverse funktioniert mit einem USB-Kabel einwandfrei.
Roger Madsen

228

Es ist eigentlich ganz einfach.

  • Schalten Sie den WLAN-Hotspot Ihres Android-Telefons / Routers ein und verbinden Sie Ihren Laptop mit Ihrem Telefon
  • Starten Sie Ihren Server unter localhost (Ich verwende den WAMP-Server für Windows)
  • Öffnen Sie nun die Eingabeaufforderung und geben Sie ein
ipconfig

Sobald Sie dies getan haben, sehen Sie ungefähr Folgendes:

WLAN-Adapter WLAN-Verbindung:
  Verbindungsspezifisches DNS-Suffix. ::
  Link-lokale IPv6-Adresse. . . . . : fe80 :: 80bc: e378: 19ab: e448% 11
  IPv4-Adresse. . . . . . . . . . . : 192.168.43.76
  Subnetzmaske. . . . . . . . . . . : 255.255.255.0
  Standard-Gateway . . . . . . . . . : 192.168.43.1
  • Kopieren Sie die IPv4-Adresse (in diesem Fall 192.168.43.76)
  • Fügen Sie in Ihrem mobilen Browser einfach die IPv4-Adresse ein

Hinweis: Bitte stellen Sie Ihr Netzwerk als „ Home Network “. Wenn Sie das Netzwerk als Heimnetzwerk festlegen, können Sie Ihrem PC erlauben, Inhalte mit anderen Geräten im selben Netzwerk zu teilen.

Wenn Sie Windows 10 verwenden, können Sie dies wie folgt tun:

  • Öffnen Sie die Einstellungen
  • Gehen Sie zu Netzwerk & Internet
  • Wählen Sie im linken Menü WLAN
  • Tippen Sie auf den Namen des verbundenen WLANs
  • Stellen Sie das Netzwerkprofil des Netzwerks auf Privat ein

Wenn Sie ein Problem haben, liegt dies höchstwahrscheinlich an der Windows-Firewall.

  • Öffnen Sie die Systemsteuerung
  • Wechseln Sie zur Windows Defender-Firewall
  • Tippen Sie auf App oder Funktion über die Windows Defender-Firewall zulassen
  • Überprüfen Sie, ob die App für private Netzwerke aktiviert ist (es sollte ein Häkchen vorhanden sein).
  • Wenn es nicht aktiviert ist, tippen Sie auf Einstellungen ändern und aktivieren Sie das Kontrollkästchen unter Privat für die App

30
hm hat das getan, aber der Browser scheint ewig zu brauchen, um zu laden, dann gibt es mir ein oops? mache ich etwas falsch? Und was meinst du mit Heimnetzwerk
Lion789

12
Bitte denken Sie daran, die Firewall auch im Computer auszuschalten.
Minh Nguyen

2
Ja, das Ausschalten der Firewall hat geholfen. Vielen Dank.
Beemo

2
* Heimnetzwerk ist es (: Heimnetzwerk bedeutet, dass Ihr Computer ich Sachen mit den Geräten des gleichen Netzwerks teilen durfte.
Leap Hawk

6
"Tippen Sie auf App oder Funktion über Windows Defender Firewall zulassen. Überprüfen Sie, ob die App für private Netzwerke aktiviert ist (es sollte ein Häkchen vorhanden sein.)" Welche App meinen Sie?
Liz Lamperouge

71

Mac OS X- Benutzer

Ich habe dies erreicht, indem ich die Fernverwaltung aktiviert habe :

  • Stellen Sie sicher, dass Ihr Telefon und Ihr Laptop mit demselben WiFi-Netzwerk verbunden sind
  • Gehen Sie auf dem Mac zu System preferences/sharing
  • Aktivieren Sie die Remoteverwaltung

Sie sehen eine ähnliche Meldung:

  • Andere Benutzer können Ihren Computer anhand der Adresse verwalten some.url.com

Auf Ihrem Android-Gerät sollten Sie jetzt in der Lage sein some.url.com, localhostauf Ihrem Mac zu delegieren . Sie können auch ifconfigdie IP-Adresse Ihres Mac abrufen.


Portable Lösung mit ngrok(jedem Betriebssystem mit Node.js)

Wenn es Ihnen nichts ausmacht, Ihr Projekt mit einer temporären Domäne verfügbar zu machen, können Sie diese verwenden ngrok. Nehmen wir an, ich habe eine App, auf der localhost:9460ich einfach schreiben kann

npm install ngrok -g

ngrok http 9460

Das wird mir geben:

Sitzungsstatus online
Update Update verfügbar (Version 2.2.8, Strg-U zum Update)
Version 2.2.3
Region Vereinigte Staaten (us)
Webinterface http://127.0.0.1:4040
Weiterleitung http://f7c23d14.ngrok.io -> localhost: 9460
Weiterleitung https://f7c23d14.ngrok.io -> localhost: 9460

Anschlüsse ttl opn rt1 rt5 p50 p90
                              0 0 0,00 0,00 0,00 0,00

Ich kann jetzt erreichen https://f7c23d14.ngrok.io, um aus der Ferne zu sehen localhost. Dies ist großartig, um Designarbeit oder Fortschritt mit Kunden zu teilen.


Alternative Lösung mit nginxProxy-Pass

Wenn Sie so etwas durchlaufen, müssen nginx proxy_passSie etwas mehr Anpassungen vornehmen - dies ist ein hackiger Ansatz, aber er funktioniert für mich und ich bin offen für Vorschläge zur Verbesserung:

  • Aktivieren Sie die Remoteverwaltung (wie oben erwähnt).
  • Stellen Sie den Server vorübergehend so ein, dass er den Port 81abhört und nicht80
  • Geben Sie den folgenden Befehl ein:
sudo nginx -s reload
  • Besuch 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$;
  # ...
}

Nachladen und besuchen http://youripaddress:81


2
Wenn Sie dieses 'Remote-Management'-Setup verwenden, ist es auch hilfreich zu wissen, dass auf Ihrem mobilen Gerät (über USB verbunden) nur der erste <VirtualHost> verfügbar ist, wenn viele Alias-Server in mamp ausgeführt werden in httpd-vhosts.conf definiert, also verschieben Sie einfach Ihr aktuelles Projekt an den Anfang der Liste
DrewT

Wie Sie sagten, habe ich die Remoteverwaltung auf meinem Mac aktiviert und weitere Kontrollkästchen für verschiedene Möglichkeiten zur Remoteverwaltung meines Computers erhalten. Ich habe sie alle außer Observe deaktiviert, und es hat gut für mich funktioniert. Mein Webserver lief auf meinem Mac am localhost-Port 5555 und ich sah, dass "andere Benutzer Ihren Computer unter der Adresse 10.0.0.12 verwalten können". Also gab ich im Browser meines Telefons 10.0.0.12:5555 ein und sah meine Webseite.
Marcus

Es hat funktioniert, wenn die IP verwendet wurde, 192.168.0.101aber der Hostname hat nicht funktioniert.
Krishnadas PC

6
Auf einem Mac klicken Sie einfach ALT + Klicken Sie in Ihrer Menüleiste auf WLAN, um Ihre IP-Adresse abzurufen.
Matharden

Ich habe meine Firewall deaktiviert, aber es wird immer noch angezeigt, dass die Verbindung abgelehnt wurde.
Unnikrishnan

67

Mit der einfachen Lösung (nur Zugriff laptop_ip_addr:portvon einem mobilen Gerät, wenn sich Handy und Laptop auf demselben WLAN befinden) wird der Fehler ERR_CONNECTION_REFUSED angezeigt . Das heißt, mein MacBook scheint den Verbindungsversuch von meinem Handy aus abzulehnen.


ADB Reverse Socket (nur für Android)

Diese Lösung funktioniert bei mir (getestet mit einem MacBook):

  1. Verbinden Sie das Android-Mobilgerät mit einem USB-Kabel mit dem Laptop
  2. Aktivieren Sie das USB-Debugging auf Mobilgeräten
  3. Auf dem Laptop ausführen adb reverse tcp:4000 tcp:4000
    • Verwenden Sie stattdessen Ihre benutzerdefinierte Portnummer 4000
  4. Jetzt können Sie auf dem mobilen Gerät zu navigieren http://localhost:4000/und es wird tatsächlich eine Verbindung zum Laptop hergestellt, nicht zum mobilen Gerät

Siehe Anweisungen hier .

Der Nachteil ist, dass dies nur mit einem funktioniert einzelnen Mobilgerät . Wenn Sie mit einem anderen mobilen Gerät zugreifen möchten, müssen Sie zuerst das erste trennen ( USB-Debugging deaktivieren ), das neue verbinden ( USB-Debugging aktivieren ) und adb reverse tcp:4000 tcp:4000erneut ausführen .


ngrok (funktioniert mit allen Geräten)

Eine andere Lösung, die immer funktionieren sollte, ist ngrok (wie in anderen Antworten erwähnt). Es funktioniert über das Internet und nicht über das lokale Netzwerk.

Es ist extrem einfach zu bedienen:

brew cask install ngrok
ngrok http 4000

Dies gibt unter anderem eine Zeile wie aus

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

Jetzt können Sie zu navigieren http://4cc5ac02.ngrok.io auf jedem Gerät das mit dem Internet verbunden ist, und diese URL leitet zu localhost:4000Ihrem Laptop weiter.

Beachten Sie, dass Ihr Projekt öffentlich bereitgestellt wird, solange der Befehl ngrok ausgeführt wird (bis Sie Strg-C drücken ) . Jeder, der die URL hat, kann sie sehen.


2
Du hast mein Leben gerettet, Alter
Um am

Vielen Dank. Sie haben mir sehr geholfen. Ich habe adb reverse verwendet und nur 4000 Port auf 3000 ersetzt und es hat so funktioniert, wie ich es brauchte.
Marcus Crisostomo

Verdammt, das hat endlich funktioniert, danke!
Alex

38

Ich habe eine schnelle Lösung für dieses Problem gefunden. Versuchen Sie diesen Link . Es sollte Ihnen helfen, das Problem zu beheben.

Ich habe nur eines geändert: Im Tutorial heißt es, dass Sie '127.0.0.1' in 'Alle' ändern und es stattdessen in die IP-Adresse ändern, auf der Ihr Server ausgeführt wird.

Danach sollten Sie in der Lage sein, eine Verbindung zu Ihrem lokalen Host herzustellen.


Unten finden Sie eine (Korrektur) Kopie der Informationen von der verlinkten Seite:

Schritt 1

Installieren Sie den Wamp-Server (oder einen anderen, den Sie bevorzugen).

Dies ist einer der besten Server, die ich kenne, um einen lokalen Server einzurichten. Wenn Sie Apache oder einen anderen Server installiert haben, ignorieren Sie diesen Schritt.

Laden Sie Wamp Server von hier herunter und installieren Sie es.

Schritt 2

Fügen Sie eine neue Regel für Port 80 in der Windows-Firewall hinzu.

  1. Öffnen Sie die Systemsteuerung und wählen Sie Windows-Firewall.

  2. Wählen Sie im linken Bereich der Windows-Firewall-Einstellungsseite die Option Erweiterte Einstellungen.

  3. Wählen Sie im linken Bereich Eingehende Regeln und dann Neue Regel aus.

  4. Wählen Sie Port und klicken Sie auf Weiter.

  5. Aktivieren Sie das Optionsfeld "Bestimmte lokale Ports" und geben Sie 80 als Portwert ein.

  6. Lassen Sie die Verbindung unverändert und fahren Sie mit dem nächsten Schritt fort.

  7. Lassen Sie die Profiloptionen unverändert und klicken Sie auf Weiter.

  8. Geben Sie Ihrer neuen Regel einen schönen Namen und klicken Sie auf Fertig stellen.

Dadurch wird der Zugriff auf Port 80 auf der lokalen Netzwerk-IP ermöglicht.

Schritt 3

Bearbeiten Sie die Datei httpd.conf des Wamp-Servers, um den 403-Fehler zu beheben.

Wir müssen diese Datei bearbeiten. Andernfalls wird der verbotene Fehler 403 angezeigt, wenn wir über eine lokale Netzwerk-IP auf den lokalen Host zugreifen.

  1. Klicken Sie auf das Wamp Server Tray-Symbol.

  2. Öffnen Sie das Untermenü des Apache-Servers.

  3. Wählen Sie httpd.conf.

  4. Suchen Sie diesen Konfigurationsabschnitt in der Datei 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

Suchen und ersetzen Sie '127.0.0.1' durch 'Alle', speichern Sie die Datei und starten Sie Ihren Wamp-Server neu.

Schritt 4

Finden Sie Ihre lokale Netzwerk-IP.

  1. Öffnen Sie die Eingabeaufforderung.

  2. Geben Sie den ipconfigBefehl ein und geben Sie ihn ein .

  3. In meinem Fall lautet meine lokale Netzwerkadresse 10.0.0.2.

Dies ist die IP, die Sie benötigen, um über WLAN auf Ihren lokalen Host auf Ihrem Android-Telefon zuzugreifen. Um zu testen, ob es funktioniert, geben Sie diese IP-Adresse in Ihren Desktop-Browser ein, auf dem Ihr localhost-Server installiert ist. Der Browser sollte Ihre localhost-Seite erfolgreich anzeigen. Dadurch wird sichergestellt, dass auf diese lokale Netzwerk-IP jetzt auf Ihrem Android-Telefon erfolgreich zugegriffen werden kann.

Ich hoffe, dieses Tutorial hilft Ihnen, über WLAN auf Ihren lokalen Host zuzugreifen.


Vielen Dank! das hat so einfach geklappt. nur eine Sache; Ich verließ die httpd.conf als# onlineoffline tag - don't remove Order Allow,Deny Allow from all
numediaweb

1
Tutorial basiert auf Windows? wut?
Abbood

1
Der Link funktioniert nicht mehr, daher ist die gesamte Antwort jetzt unbrauchbar, da die Informationen zu SO nicht hinzugefügt wurden.
Angriff

Für Wamp Server v3 wurde ein verbotener Fehler angezeigt. Lesen Sie in dieser Antwort stackoverflow.com/questions/23382627/… nach, wie Sie die vhosts-Informationen ändern können (bearbeiten Sie die Datei httpd.conf nicht wie oben gezeigt)
friek108

Dies ist eine wirklich alte Version von Wamp, wie es aussieht. Die Konfigurationsdateien sind jetzt etwas komplizierter. Vor allem, wenn Sie die VHosts-Funktion verwenden. Ich kann es nicht herausfinden, zu viele Ebenen von Überschreibungen.
Jonathan

37

Auf einem Windows-PC müssen Sie möglicherweise nichts anderes tun, als Ihre IPv4-Adresse mit dem Befehl "ipconfig" herauszufinden.

  • Schritt 1: Schließen Sie Ihr Telefon mit einem USB-Kabel an den PC an.
  • Schritt 2: Verwenden Sie den Befehl 'ipconfig', um Ihre IPv4-Adresse (externe IP des Routers) zu ermitteln, z. B. 192.168.1.5 in meinem Fall.
  • Schritt 3: Greifen Sie einfach über Ihren Telefonbrowser auf "192.168.1.5:8080" zu. Es klappt !

Weitere Env-Details: Windows 7, Google Nexus 4 (4.2.2), Tomcat Server, Grails-Anwendung.

Sie sollten auch sicherstellen, dass Sie die Berechtigung zum Zugriff auf das Internet in der AndroidManifest-Datei haben:

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

Ich habe es versucht, aber es heißt immer wieder, dass "Verbindung abgelehnt". Warum? :( Muss der Port 8080 sein? Derzeit läuft mein Webdienst auf einem anderen Port.
Triet Doan

2
Ich habe Tomcat an Port 8080 verwendet. Sie können Ihren eigenen Server-Port anstelle von 8080 anhängen.
Sanjay Kumar

und was ist mit einer Webapp? keine native App
amdev

Ich habe immer noch keinen Zugang zu meinem
lokalen Host

Ich habe es versucht, aber es heißtjava.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Moeez

16

Es gibt jedoch eine weitaus bessere Lösung. Sie können mit der IP-Adresse "10.0.2.2" auf Ihren Host-Computer zugreifen. Dies wurde vom Android-Team auf diese Weise entworfen. So kann Ihr Webserver perfekt auf localhost ausgeführt werden und über Ihre Android-App können Sie über "http://10.0.2.2:8080" darauf zugreifen.


4
Der wahre Trick besteht darin, die lokale IP-Adresse Ihres Computers anzugeben und über einen WLAN-Router darauf zuzugreifen, der zwischen Ihrem Android-Gerät und Ihrem Computer, auch bekannt als System, verbunden ist
Akhil Jain,

Toller Punkt, ich habe genau danach gesucht, um den Emulator mit localhost zu kommunizieren. Vielen Dank!!
Eagle

13

Da dies eine alte Frage ist, gibt es einen neuen Weg, der wirklich sehr einfach ist. Laden Sie die ADB Chrome-Erweiterung herunter und befolgen Sie die folgenden Anweisungen:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging


3
Es ist nicht mehr erforderlich, ADB herunterzuladen, es ist veraltet. Gehen Sie jedoch zu developer.google.com/chrome-developer-tools/docs/… und folgen Sie den Anweisungen. Hinweis: Ich musste Port 8443 an localhost weiterleiten: 8443
Dimitris

Funktioniert dies nur für URL-Anrufe von Chrome auf dem Gerät oder soll es auch in meiner App funktionieren?
Orkun Ozen

3
Dies brachte mich auf den richtigen Weg - eine neuere Antwort zu Chrome Dev Tools finden Sie hier: Android Chrome Reverse Port Forwarding
Richard Le Mesurier

Ich blieb stecken, weil ich Google Chrome nicht auf meinem Gerät installiert hatte. Doh!
Chad Bingham

9

"Die Portweiterleitung unter Chrome für Android erleichtert das Testen Ihrer Entwicklungssite auf Mobilgeräten. Sie erstellt einen empfangenden TCP-Port auf Ihrem Mobilgerät, der einem bestimmten TCP-Port auf Ihrem Entwicklungscomputer zugeordnet ist. Der Datenverkehr zwischen diesen Ports erfolgt über USB. Die Verbindung hängt also nicht von Ihrer Netzwerkkonfiguration ab. "

Weitere Details finden Sie hier: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding


9

Diese Lösung kann verwendet werden, wenn sich Ihr Mobilgerät und Ihr Computer nicht im selben Netzwerk befinden:

In diesem Fall müssen Sie die Portweiterleitung verwenden. Im Google Chrome Inspect-Fenster (Chrome: // Inspect) können Sie die angeschlossenen Geräte anzeigen. Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf die Schaltfläche zum Ausblenden des Anschlusses und legen Sie einen zufälligen Anschluss von beispielsweise 3000 für den Anschluss fest, den Ihr Laptop beispielsweise für 8080 verwendet.

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie jetzt localhost: 3000 vom Gerät, um auf den localhost: 8080 (oder_whatever_ip: portno) im Laptop zuzugreifen. Sie können es im mobilen Browser überprüfen. Versuchen Sie localhost: 3000 im mobilen Browser. Stellen Sie sicher, dass das Kontrollkästchen "Portweiterleitung aktivieren" im Fenster "Einstellungen für die Portweiterleitung" aktiviert ist


Ich liebe dich, alter! Sie müssen ein Tutorial mit diesen Schritten schreiben!
Rafael Gomes Francisco

7

Führen Sie CMD als Administrator aus

und auf dem CMD-Bildschirm geben Sie ipconfig ein und der Bildschirm wird mit Text angezeigt

wie dieses Foto Geben Sie hier die Bildbeschreibung ein

und Sie können mit dieser IP auf Ihren lokalen Host zugreifen. Sie müssen mit demselben Netzwerk verbunden sein, mit dem Ihr PC verbunden ist


Schalten Sie einfach die Firewall aus
SalindaKrish

6

Möglicherweise überwacht Ihr Webserver Ihre Loopback-Schnittstelle und nicht Ihre Netzwerkschnittstelle. Hauptmerkmale dafür sind:

  • Treffer auf 127.0.0.1und localhost(von localhost oder Android Emulator) funktionieren
  • Treffer 192.168.xxx.xxxfunktionieren nicht, egal ob von localhost, LAN oder WAN

Ich rede mehr über diese Diagnose und dies in einer Antwort Festsetzung hier .


6

Versuchen Sie, zu dieser Datei zu gehen: 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

Und ändern Sie 10.0.2.2 in Ihre IP-Adresse.


Entschuldigung, ändern Sie, um Form alle zu erlauben, wenn es "
Verweigern

Ich benutze XAMPP und dieses Video gab mir die Antwort, damit es funktioniert: youtube.com/watch?v=YrA_yN3gySs
Leon

5

endlich in Ubuntu fertig, ich laufe nodejs Server auf localhost: 8080

1) Öffnen Sie den Terminaltyp ifconfig. Sie erhalten eine IP-Adresse wie folgt: inet addr: 192.168.43.17

2) Geben Sie jetzt einfach die URL-Adresse wie folgt ein: "192.168.43.17:8080" (8080-Port von der lokalen Host-Portnummer) Beispiel: "192.168.43.17:8080/fetch"


Dies funktioniert nur bei mir, wenn ich mit demselben Netzwerk verbunden bin. Ich brauche etwas, das ohne Internet funktioniert
Geek Guy

5

Verwenden Sie dies in Ihrem Ubuntu / Macbook, um die IP-Adresse Ihres Systems zu erhalten. Ihr Mobiltelefon und Ihr System sollten sich im selben Netzwerk befinden

ip addr | grep inetDadurch erhalten Sie eine IP-Adresse, die aussieht 192.168.168.46. Verwenden Sie dies in Ihrem Smartphone.

Hoffe das hilft.


4

Ich habe diesen Prozess verwendet:

  • Installieren Sie Fiddler auf dem PC
  • Richten Sie den PC und das Android-Gerät gemäß diesen hervorragenden Anweisungen ein
  • Gehen Sie einfach zum Browser auf dem Android-Gerät und geben Sie http: //ipv4.fiddler ein, um auf den localhost zuzugreifen

Beachten Sie, dass Sie für diesen Vorgang zu Beginn und am Ende jeder Sitzung die WLAN-Einstellungen auf dem Android-Gerät ändern müssen. Ich fand das weniger schmerzhaft als das Rooten meines Android-Geräts.


4

Der einfachere Weg zum Standard-Localhost ist die Verwendung von http: // localhost: port . Dies funktioniert auch in einem Laptop und Android.

Wenn es nicht funktioniert, dann setzen Sie in Android die Standard-IP Ihres Telefons auf 127.0.0.1:port :)

Terminal öffnen und eingeben: -

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

3

Dieses Problem trat bei Verwendung mehrerer verschiedener Localhost-Server auf. Endlich konnte ich meine App in Sekundenschnelle mit dem einfachen Python-Server auf dem Telefon zum Laufen bringen. Es dauert nur ein paar Sekunden und ist daher einen Versuch wert, bevor Sie sich mit komplizierteren Lösungen befassen. Stellen Sie zunächst sicher, dass Python installiert ist. cmd+rund geben Sie pythonfür Windows oder $ python --versionin Mac Terminal.

Nächster:

cd <your project root>

$ python -m SimpleHTTPServer 8000

Dann finden Sie einfach die Adresse Ihres Host-Computers im Netzwerk, die ich System Preferences/Sharingauf dem Mac verwendet habe, um sie zu finden. Tippe das auf dein Android-Gerät und sollte dein laden index.htmlund du solltest gut sein.

Wenn nicht, ist das Problem etwas anderes und Sie möchten möglicherweise einige der anderen vorgeschlagenen Lösungen untersuchen. Viel Glück!

* BEARBEITEN *

Eine weitere schnelle Lösung, wenn Sie Chrome verwenden, ist die Erweiterung "Webserver für Chrome". Ich fand es eine schnelle und super einfache Möglichkeit, über mein Telefon auf localhost zuzugreifen. Stellen Sie einfach sicher, dass Sie Accessible to local networkunter überprüfen, Optionsund es sollte problemlos auf Ihrem Handy funktionieren.

Geben Sie hier die Bildbeschreibung ein


Funktioniert es für andere serverseitige Sprachen als Python?
MASh

3

Mit ngrok können Sie Ihren localhost auf einen temporären Server stellen und sind sehr einfach einzurichten. Ich habe hier einige Schritte angegeben, die im Link zu finden sind:

  1. Laden Sie die ngrok-Zip-Datei über den obigen Link herunter
  2. Öffnen Sie den Reißverschluss
  3. Führen Sie Ihren Server lokal aus und notieren Sie sich die Portnummer
  4. Wechseln Sie im Terminal zu dem Ordner, in dem ngrok lebt, und geben Sie ein ngrok http [port number]

In Ihrem Terminal wird ein kleines Dashboard mit einer Adresse angezeigt, die auf Ihren lokalen Host verweist. Zeigen Sie mit Ihrer App auf diese Adresse und erstellen Sie sie auf Ihrem Gerät.


Dies ist nur nützlich, um extern auf den Server zuzugreifen. Sie können einfach die lokale IP-Adresse des Servers verwenden.
OneCricketeer

3

Verbinden Sie zunächst Ihr Telefon und Ihren Computer mit dem üblichen WLAN.

Öffnen Sie dann die Eingabeaufforderung mit "Als Administrator ausführen"

Geben Sie den Befehl ipconfig ein

Welches zeigt drahtlose LAN IP

Verwenden Sie den IP: Port Ihres Servers, um auf das Telefon zuzugreifen


2

Stellen Sie zunächst die IP-Adresse Ihres Computers (auf dem der Server ausgeführt wird) statisch. Geben Sie diese statische IP-Adresse in den Android-Code ein. Gehen Sie als Nächstes zur Benutzeroberfläche Ihres WLAN-Routers und überprüfen Sie das linke Feld. Sie sehen Optionen wie Portweiterleitung / -weiterleitung. Klicken Sie darauf und leiten Sie Port 80 weiter. Bearbeiten Sie nun Ihre htttpd.confDatei und bearbeiten Sie sie für

Von allen zulassen

. Starten Sie Ihren Server neu. Alles sollte jetzt gut funktionieren.

Zusätzlich können Sie die IP-Adresse Ihres Computers so reservieren, dass sie Ihnen immer zugewiesen wird. DHCP -> Address ReservationKlicken Sie im linken Bereich der Benutzeroberfläche Ihres Routers darauf. Geben Sie die MAC-Adresse Ihres Geräts und die IP-Adresse ein, die Sie im Code eingegeben haben. Klicken Sie auf Speichern. Dadurch wird die angegebene IP-Adresse für Ihr Gerät reserviert.


2

Eine Lösung, um mein mobiles Gerät basierend auf meinem Laptop mit meinem Wamp-Server zu verbinden:

Erstens ist WLAN kein Router. Um mein Mobilgerät basierend auf localhost auf meinem Laptop mit meinem Wamp-Server zu verbinden, benötige ich einen Router. Ich habe einen kostenlosen virtuellen Router heruntergeladen und installiert: https://virtualrouter.codeplex.com/

Die Konfiguration ist ganz einfach:

  1. Klicken Sie mit der rechten Maustaste auf das Symbol für den virtuellen Router in der Taskleiste
  2. Klicken Sie auf Virtuellen Router konfigurieren
  3. Geben Sie ein Passwort ein
  4. Wenn Ihre Internetverbindung über Ethernet besteht, wählen Sie Gemeinsame Verbindung: Ethernet
  5. Schalten Sie dann WLAN auf Ihrem Laptop und Gerät ein
  6. Stellen Sie auf Ihrem Gerät eine Verbindung zum Netzwerknamen des virtuellen Routers her

Anschließend können Sie über Ihr Gerät eine Verbindung zu Ihrem Laptop herstellen, indem Sie einen Browser starten und die IPV4-Adresse Ihres Laptops eingeben (um sie unter Windows zu finden, geben Sie cmd: ipconfig ein und suchen Sie die IPv4-Adresse).

Sie sollten die Startseite Ihres Wamp-Servers sehen.


2

Eine Antwort wurde zwar akzeptiert, aber das hat bei mir funktioniert:

  1. Stellen Sie sicher, dass sich sowohl Ihr Computer als auch Ihr Android-Gerät im selben Netzwerk befinden.
  2. Holen Sie sich die IP-Adresse Ihres Computers. ( Wenn Sie einen Mac ifconfigin das Terminal eingeben und danach suchen en0/en1 -> inet, sollte dies 19*.16*.1.4ungefähr so aussehen .) (Verwenden Sie unter Windows `ipconfig)
  3. Öffnen Sie Ihre mobilen Einstellungen und gehen Sie zu Netzwerk-> Drücken Sie lange auf Ihr WLAN-Netzwerk-> Ändern Sie das Netzwerk -> Scrollen Sie nach unten zu den erweiterten Optionen -> Wählen Sie das Proxy-Handbuch und geben Sie im Proxy-Hostnamen Ihre Adresse ein, dh geben Sie 19*.16*.1.4innerhalb des Ports Ihren Port ein. und speichern Sie es.

  4. Suchen Sie what is my ipin Google Chrome nach und erhalten Sie Ihre IP-Adresse1**.1**.15*.2**

  5. Versuchen Sie, 1**.1**.15*.2**:port/von Ihrem mobilen Gerät aus darauf zuzugreifen .

So einfach ist das.


Sie benötigen keinen Proxy über WLAN und Sie benötigen auch nicht die externe IP-Adresse in einem lokalen Netzwerk
OneCricketeer

2

Dies hat bei mir funktioniert. Nach der IP-Adresse 127.0.0.1 habe ich eine weitere Zeile hinzugefügt, um die genaue IP-Adresse des lokalen Netzwerks (nicht die öffentliche IP-Adresse) des Geräts anzugeben, das ich verwenden wollte. In meinem Fall mein Samsung Galaxy S3

Bearbeiten Sie wie von Bangptit vorgeschlagen die Datei httpd.conf (x sind die Versionsnummern): C: \ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf

Suchen Sie nach dem Onlineoffline-Tag und fügen Sie die IP-Adresse Ihres Telefons hinzu (die IP-Adresse meines Telefons wurde auf den Konfigurationsseiten meines Routers gefunden):

onlineoffline tag - nicht entfernen

 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1

meine Telefone IP in der Zeile unten

 Allow from 192.168.1.65 
 Allow from ::1
 Allow from localhost

Man könnte dies erweitern, um auch eine ganze Subdomain für zB 192.168.1.0/24 usw. einzuschließen


2

Der EINFACHSTE Weg (dies hat bei mir einwandfrei funktioniert) besteht darin, Ihre Site lokal zu hosten 0.0.0.0:<port_no>und mit mobilen Geräten darauf zuzugreifen, die <local_ipv4_address>:<port_no>/<path>im Browser verwendet werden.

  • Um Ihre lokale IPv4-Adresse zu ermitteln, geben Sie einfach ipconfigcmd ein
  • Jedes mit dem gleichen Netzwerk verbundene Gerät kann auf diese URL zugreifen.

2

Ngrok ist die beste Lösung. Wenn Sie PHP entwickeln, empfehle ich die Installation von Laravel Valet . Es gibt MacOS- und Linux-Versionen. Dann können Sie den valet shareBefehl verwenden. Wenn Sie eine Frontend-Technologie entwickeln und einen Port wie 3000 gemeinsam nutzen möchten, verwenden Sie ngrok direktngrok http 3000


1

Hinzufügen einer Lösung für zukünftige Entwickler.

Kopieren Sie die Adresse Ihrer IP-Adresse. Klicken Sie mit der rechten Maustaste auf Ihr Netzwerk -> Netzwerk und Freigabe -> klicken Sie auf die Verbindung, die Sie derzeit haben -> Details -> dann ist die Adresse neben der IPv4-Adresse Ihre IP-Adresse. Notieren Sie dies irgendwo

Gehen Sie zu Systemsteuerung -> System und Sicherheit -> Windows-Firewall -> Erweiterte Einstellungen -> Eingehende Regeln -> Neue Regeln (befolgen Sie die Schritte, um einen Port hinzuzufügen, z. B. 80, der wirklich einfach zu befolgen ist).

Geben Sie Ihre IP-Adresse, die Sie in Ihrem Telefonbrowser notiert haben, und die Portnummer, für die Sie die Regel erstellt haben, daneben ein. zB 192.168.0.2:80 und wala.

Mögliche Lösung, wenn keine Verbindung hergestellt wird. Klicken Sie mit der rechten Maustaste auf Netzwerk-> Netzwerk öffnen und freigeben-> Schauen Sie unter Anzeigen Ihrer aktiven Verbindungen, unter dem Namen Ihrer Verbindung nach dem Verbindungstyp und klicken Sie darauf, wenn es öffentlich ist, und stellen Sie sicher, dass Sie es in ein Heimnetzwerk ändern.


1

Eine andere zu überprüfende Sache ist, dass einige Router Probleme haben, die Anforderungen zu überbrücken, wenn sowohl 2.4G als auch 5G aktiviert sind und die Geräte auf unterschiedlichen Frequenzen sind. Versuchen Sie, eine der Frequenzen zu deaktivieren, damit beide Geräte an dieselbe Schnittstelle angeschlossen sind.



0

Persönlich bestehe ich nicht darauf, localhost zu verwenden, wenn ich ein Gerät benutze. Es gibt keine einfache Lösung.

Starten Sie einfach die Aktivität, bei der Sie eine Verbindung zu localhost herstellen, wo Sie den Emulator verwenden können. Alle Informationen, die Sie vom Gerät erhalten müssen, können problemlos generiert und als Parameter an die Aktivität gesendet werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.