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?
Antworten:
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
localhost
und nicht127.0.0.1
).So ermitteln Sie die IP-Adresse Ihres Desktops:
ipconfig
(Windows) oderifconfig
(Unix) ein.ifconfig | grep "inet " | grep -v 127.0.0.1
liefert der Einzeiler nur das Wichtigelocalhost
und127.0.0.1
)Wenn Ihr Telefon mit dem Mobilfunknetz verbunden ist , wird es schwieriger.
Entweder gehen Hardcore:
<your desktop IP>:<server port number>
Verwenden Sie andernfalls etwas wie xip.io oder ngrok .
HINWEIS : Der
ifconfig
Befehl 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:Der obige IP-Befehl kann wie folgt abgekürzt werden:
Wenn Sie es immer noch vorziehen, es
ifconfig
als Teil Ihrer täglichen Systemadministrationsroutine zu verwenden, können Sie es einfach als Teil desnet-tools
Pakets installieren .Referenz ist hier
quelle
Es ist eigentlich ganz einfach.
localhost
(Ich verwende den WAMP-Server für Windows)Sobald Sie dies getan haben, sehen Sie ungefähr Folgendes:
192.168.43.76
)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:
Wenn Sie ein Problem haben, liegt dies höchstwahrscheinlich an der Windows-Firewall.
quelle
Mac OS X- Benutzer
Ich habe dies erreicht, indem ich die Fernverwaltung aktiviert habe :
System preferences/sharing
Sie sehen eine ähnliche Meldung:
some.url.com
Auf Ihrem Android-Gerät sollten Sie jetzt in der Lage sein
some.url.com
,localhost
auf Ihrem Mac zu delegieren . Sie können auchifconfig
die 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 derlocalhost:9460
ich einfach schreiben kannDas wird mir geben:
Ich kann jetzt erreichen
https://f7c23d14.ngrok.io
, um aus der Ferne zu sehenlocalhost
. Dies ist großartig, um Designarbeit oder Fortschritt mit Kunden zu teilen.Alternative Lösung mit
nginx
Proxy-PassWenn Sie so etwas durchlaufen, müssen
nginx proxy_pass
Sie 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:81
abhört und nicht80
http://youripaddress:81
Nachladen und besuchen
http://youripaddress:81
quelle
192.168.0.101
aber der Hostname hat nicht funktioniert.Mit der einfachen Lösung (nur Zugriff
laptop_ip_addr:port
von 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):
adb reverse tcp:4000 tcp:4000
4000
http://localhost:4000/
und es wird tatsächlich eine Verbindung zum Laptop hergestellt, nicht zum mobilen GerätSiehe 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:4000
erneut 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:
Dies gibt unter anderem eine Zeile wie aus
Jetzt können Sie zu navigieren
http://4cc5ac02.ngrok.io
auf jedem Gerät das mit dem Internet verbunden ist, und diese URL leitet zulocalhost:4000
Ihrem 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.
quelle
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.
Öffnen Sie die Systemsteuerung und wählen Sie Windows-Firewall.
Wählen Sie im linken Bereich der Windows-Firewall-Einstellungsseite die Option Erweiterte Einstellungen.
Wählen Sie im linken Bereich Eingehende Regeln und dann Neue Regel aus.
Wählen Sie Port und klicken Sie auf Weiter.
Aktivieren Sie das Optionsfeld "Bestimmte lokale Ports" und geben Sie 80 als Portwert ein.
Lassen Sie die Verbindung unverändert und fahren Sie mit dem nächsten Schritt fort.
Lassen Sie die Profiloptionen unverändert und klicken Sie auf Weiter.
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.
Klicken Sie auf das Wamp Server Tray-Symbol.
Öffnen Sie das Untermenü des Apache-Servers.
Wählen Sie httpd.conf.
Suchen Sie diesen Konfigurationsabschnitt in der Datei httpd.conf:
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.
Öffnen Sie die Eingabeaufforderung.
Geben Sie den
ipconfig
Befehl ein und geben Sie ihn ein .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.
quelle
# onlineoffline tag - don't remove Order Allow,Deny Allow from all
Auf einem Windows-PC müssen Sie möglicherweise nichts anderes tun, als Ihre IPv4-Adresse mit dem Befehl "ipconfig" herauszufinden.
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:
quelle
java.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
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.
quelle
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
quelle
"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
quelle
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.
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.
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
quelle
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
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
quelle
Möglicherweise überwacht Ihr Webserver Ihre Loopback-Schnittstelle und nicht Ihre Netzwerkschnittstelle. Hauptmerkmale dafür sind:
127.0.0.1
undlocalhost
(von localhost oder Android Emulator) funktionieren192.168.xxx.xxx
funktionieren nicht, egal ob von localhost, LAN oder WANIch rede mehr über diese Diagnose und dies in einer Antwort Festsetzung hier .
quelle
Versuchen Sie, zu dieser Datei zu gehen:
C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf
Und ändern Sie 10.0.2.2 in Ihre IP-Adresse.
quelle
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"
quelle
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 inet
Dadurch erhalten Sie eine IP-Adresse, die aussieht192.168.168.46
. Verwenden Sie dies in Ihrem Smartphone.Hoffe das hilft.
quelle
Ich habe diesen Prozess verwendet:
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.
quelle
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: -
quelle
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+r
und geben Siepython
für Windows oder$ python --version
in Mac Terminal.Nächster:
Dann finden Sie einfach die Adresse Ihres Host-Computers im Netzwerk, die ich
System Preferences/Sharing
auf dem Mac verwendet habe, um sie zu finden. Tippe das auf dein Android-Gerät und sollte dein ladenindex.html
und 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 network
unter überprüfen,Options
und es sollte problemlos auf Ihrem Handy funktionieren.quelle
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:
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.
quelle
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
quelle
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.conf
Datei und bearbeiten Sie sie fürVon 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 Reservation
Klicken 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.quelle
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:
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.
quelle
Eine Antwort wurde zwar akzeptiert, aber das hat bei mir funktioniert:
ifconfig
in das Terminal eingeben und danach suchenen0/en1 -> inet
, sollte dies19*.16*.1.4
ungefähr so aussehen .) (Verwenden Sie unter Windows `ipconfig)Ö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.4
innerhalb des Ports Ihren Port ein. und speichern Sie es.Suchen Sie
what is my ip
in Google Chrome nach und erhalten Sie Ihre IP-Adresse1**.1**.15*.2**
1**.1**.15*.2**:port/
von Ihrem mobilen Gerät aus darauf zuzugreifen .So einfach ist das.
quelle
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
meine Telefone IP in der Zeile unten
Man könnte dies erweitern, um auch eine ganze Subdomain für zB 192.168.1.0/24 usw. einzuschließen
quelle
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.ipconfig
cmd einquelle
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 share
Befehl verwenden. Wenn Sie eine Frontend-Technologie entwickeln und einen Port wie 3000 gemeinsam nutzen möchten, verwenden Sie ngrok direktngrok http 3000
quelle
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.
quelle
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.
quelle
Verwenden Sie
connectify
undxampp
oder gleichwertig und geben Sie die IP-Adresse in die mobile URL-Leiste ein, um darauf zuzugreifenquelle
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.
quelle