Androidデバイスからローカルホストにアクセスするにはどうすればよいですか?


543

Androidエミュレーターを使用してラップトップのWebサーバーにアクセスできますが、問題10.0.2.2:portno なく動作しています。

しかし、実際のAndroidフォンを接続すると、電話のブラウザがラップトップ上の同じWebサーバーに接続できません。電話機はUSBケーブルを使用してラップトップに接続されています。adb devicesコマンドを実行すると、電話が表示されます。

何が欠けていますか?


3
これを試してください:stackoverflow.com/a/17603378/1600061
Zsivics Sanel 2013

ここではドキュメントを参照してください:developer.android.com/tools/devices/...
ヘンリー・アロニ

3
ウェブページのテスト中にファイアウォールをオフにするか、ファイアウォール設定で信頼できるネットワークにIPを追加します。
zeeali 2017年


ngrokのスープez
JonPizza

回答:


403

USBはモバイルデバイスにネットワークを提供しません。

デスクトップと電話の両方が同じWiFi(またはその他のローカルネットワーク)に接続されている場合は、ルーターによって割り当てられたデスクトップIPアドレスを使用します(ではlocalhostなく127.0.0.1)。

デスクトップのIPアドレスを確認するには:

  • コマンドラインに入力しますipconfig(Windows)またはifconfig(Unix)
    • Linuxでは、ワンライナーifconfig | grep "inet " | grep -v 127.0.0.1は重要なものだけを生成します
    • あります提案の束のWindows上で同様の出力を持ってする方法については、
  • IPの束になるだろう
  • それらのすべてを試してください(上記localhostおよびを除く127.0.0.1

携帯電話がモバイルネットワークに接続されている場合、状況はさらに難しくなります。

どちらかハードコアに行く:

  • 最初にルーターの外部IPアドレスを確認します(https://www.google.de/search?q=myip
  • 次に、ルーターで、いくつかのポートを <your desktop IP>:<server port number>
  • 最後に、外部IPアドレスと転送ポートを使用します

それ以外の場合は、xip.ioまたはngrokなどを使用してください

:このifconfigコマンドは廃止予定であり、Debianストレッチから始まるDebian Linuxではデフォルトで欠落しています。Debian Linuxのネットワーク構成を調べるための新しい推奨される代替手段は、ipコマンドです。たとえば、ipコマンドを使用してネットワーク構成を表示するには、次のコマンドを実行します。

ip address

上記のipコマンドは、次のように省略できます。

ip a

それでもifconfig毎日のシステム管理ルーチンの一部として使用したい場合は、net-toolsパッケージの一部として簡単にインストールできます。

apt-get install net-tools

参考はこちら


おかげで、これは私にとって大きな助けとなりました。私にとっての問題は、ローカルのApacheサーバーがIP 10.0.2.2経由でアドレス指定できることを知らなかったことでした。...私は、ipconfigによるショーなど、他の多くのIPアドレスを試してみました。
Vidar Vestnes、2011

4
この問題の解決策がわかりません。電話からサーバーにアクセスする方法について教えてください。この解決策を具体化してください。ありがとう。
iremce 2011

1
以下の私のコメントを読んでください。インターネットアクセス許可も必要です。<uses-permission android:name = "android.permission.INTERNET" />
Sanjay Kumar

3
@simoはルーターのホームページ、XFinityの10.0.0.1、通常は192.168.1.1にアクセスしてログインし、接続されたデバイスまたはローカルIPを探して、コンピューターとBAMを見つけます。鉱山は10.0.0。#だったので、[10.0.0。#:( port)/ Server / Servlet]または何かを追加するだけ
jp093121

2
これは、この質問に対する受け入れられた回答であってはなりません。Chrome devtoolsとadb reverseのポート転送は、USBケーブルで完全に正常に動作します。
ロジャーマドセン

229

それは実際には非常に簡単です。

  • Androidスマートフォン/ルーターのWiFiホットスポットをオンにして、ノートパソコンをスマートフォンに接続します
  • サーバーを起動しますlocalhost(WindowsのWAMPサーバーを使用しています)
  • ここでコマンドプロンプトを開き、次のように入力します。
ipconfig

これを完了すると、次のようなものが表示されます。

ワイヤレスLANアダプターワイヤレスネットワーク接続:
  接続固有のDNSサフィックス。:
  リンクローカルIPv6アドレス。。。。。:fe80 :: 80bc:e378:19ab:e448%11
  IPv4アドレス。。。。。。。。。。。:192.168.43.76
  サブネットマスク 。。。。。。。。。。。:255.255.255.0
  デフォルトゲートウェイ 。。。。。。。。。:192.168.43.1
  • IPv4アドレスをコピーします(この場合は192.168.43.76
  • モバイルブラウザで、IPv4アドレスを貼り付けるだけです

注:ネットワークを「ホームネットワーク」として設定してください。ネットワークをホームネットワークとして設定すると、PCが同じネットワーク上の他のデバイスとデータを共有できるようになります。

Windows 10を使用している場合、これは次のようにして行うことができます。

  • 設定を開く
  • 行くネットワーク&インターネット
  • 左側のメニューでWiFiを選択します
  • 接続されているWiFiの名前をタップします
  • 設定するネットワークプロファイルするネットワークのをプライベート

問題が発生している場合は、Windowsファイアウォールが原因である可能性が高いです。

  • コントロールパネルを開く
  • Windows Defender Firewallに移動します
  • Windows Defender Firewallを介したアプリまたは機能を許可するをタップします
  • アプリでプライベートネットワークが有効になっているかどうかを確認します(チェックマークがあるはずです)。
  • 有効になっていない場合は、[ 設定変更]をタップし、アプリの[ プライベート]の下のチェックボックスをオンにします

30
えっとこれをやったが、ブラウザがロードするのに永遠にかかるようだし、それは私におっとを与える?私は何か間違ったことをしていますか?そして、ホームネットワークとはどういう意味
ですか

12
コンピュータのファイアウォールもオフにすることを忘れないでください。
Minh Nguyen

2
はい、ファイアウォールをオフにすることで解決しました。ありがとう。
Beemo 2016年

2
*ホームネットワークは、それが(ある:。ホームネットワークは、私は、同じネットワークのデバイスと共有のものに許可され、コンピュータを意味
リープホーク

6
「Windows Defenderファイアウォールを介してアプリまたは機能を許可する」をタップします。アプリがプライベートネットワークで有効になっているかどうかを確認します(チェックマークがあるはずです)。
リズラン

71

Mac OS Xユーザー

リモート管理を有効にすることでこれを達成しました:

  • スマートフォンとラップトップが同じ WiFiネットワークに接続されていることを確認してください
  • Macの場合は、 System preferences/sharing
  • リモート管理を有効にする

次のようなメッセージが表示されます。

  • 他のユーザーはアドレスを使用してコンピューターを管理できます some.url.com

Androidデバイスで、Macのsome.url.com委任先であるにアクセスできるようになりlocalhostます。を使用ifconfigして、MacのIPアドレスを取得することもできます。


ngrok(Node.jsを備えたすべてのOS)を備えたポータブルソリューション

一時的なドメインでプロジェクトを公開してもかまわない場合は、を使用できますngrok。実行localhost:9460できるアプリがあるとしましょう。

npm install ngrok -g

ngrok http 9460

これは私に与えます:

オンラインのセッション状況
利用可能なアップデートアップデート(バージョン2.2.8、アップデートするにはCtrl-U)
バージョン2.2.3
米国(us)
Webインターフェイスhttp://127.0.0.1:4040
転送http://f7c23d14.ngrok.io-> localhost:9460
転送https://f7c23d14.ngrok.io-> localhost:9460

接続ttl opn rt1 rt5 p50 p90
                              0 0 0.00 0.00 0.00 0.00

これでhttps://f7c23d14.ngrok.io、リモートで表示する方法としてリーチできますlocalhost。これは、設計作業や進捗状況をクライアントと共有するのに最適です。


nginxプロキシパスを使用した代替ソリューション

このようなものを実行しているnginx proxy_pass場合、少し調整が必要になります-これはハックなアプローチですが、私にとってはうまくいき、私はそれを改善するための提案を受け入れています:

  • リモート管理を有効にする(上記のとおり)
  • サーバーを一時的にポートで81はなくリスニングするように設定します80
  • 次のコマンドを入力します。
sudo nginx -s reload
  • 訪問 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$;
  # ...
}

再読み込みしてアクセス http://youripaddress:81


2
この「リモート管理」設定を使用している場合、mampでエイリアスサーバーが多数実行されている場合、モバイルデバイス(USB経由で接続)は最初の<VirtualHost>にのみアクセスできます。 httpd-vhosts.confで定義されているため、現在のプロジェクトをリストの一番上に移動します
DrewT

私はあなたが言ったように私のMacでリモート管理を有効にしました、そして私は私のコンピューターがリモートで管理されることができる様々な方法のためのチェックボックスの別のセットを与えられました。観察以外はすべてチェックを外したままにしておいたので、うまくいきました。私のWebサーバーはローカルホストポート5555のMacで実行されていて、「他のユーザーはアドレス10.0.0.12を使用してコンピューターを管理できる」と表示されたので、電話のブラウザーで10.0.0.12:5555と入力してWebページを見ました。
Marcus、

IPを使用すると機能しました192.168.0.101が、ホスト名が機能しませんでした。
Krishnadas PC

6
Macの場合は、メニューバーでAltキーを押しながらWi-FiをクリックしてIPアドレスを取得します。
matharden

ファイアウォールを無効にしましたが、接続が拒否されたように見えますが、それを機能させる方法はありますか?
Unnikrishnan

67

シンプルな解決策(laptop_ip_addr:portモバイルデバイスとラップトップが同じWiFiにある場合、モバイルデバイスからのアクセスのみ)で、ERR_CONNECTION_REFUSEDエラーが発生します。つまり、私のMacBookは私の携帯電話からの接続試行を拒否しているようです。


ADBリバースソケット(Androidのみ)

このソリューションは、働く私のため(のMacBookでテスト):

  1. AndroidモバイルデバイスをUSBケーブルでラップトップに接続します
  2. USBデバッグを有効にするモバイルデバイスでをする
  3. ラップトップで実行 adb reverse tcp:4000 tcp:4000
    • 代わりにカスタムポート番号を使用する 4000
  4. これで、モバイルデバイスでに移動できます。http://localhost:4000/実際には、モバイルデバイスではなくラップトップに接続します

こちらの手順をご覧ください

欠点は、これは一度に1つのモバイルデバイスでのみ機能することです。別のモバイルデバイスでアクセスする場合は、最初のモバイルデバイスを切断して(USBデバッグを無効にする)、新しいデバイスを接続して(USBデバッグを有効にする)、adb reverse tcp:4000 tcp:4000再度実行する必要があります。


ngrok(すべてのデバイスで動作)

常に動作するはずの別の解決策は、ngrokです(他の回答で述べたとおり)。ローカルネットワークではなく、インターネット経由で機能します。

使い方は非常に簡単です。

brew cask install ngrok
ngrok http 4000

これは、いくつかの情報の中で、次のような行を出力します

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

これでhttp://4cc5ac02.ngrok.io、インターネットに接続されている任意のデバイスに移動でき、このURL localhost:4000はラップトップにリダイレクトされます。

ngrokコマンドが実行されている限り(Ctrl-Cを押すまで)、プロジェクトは公的に提供されます。URLを知っている人なら誰でも見ることができます。


2
あなたは私の人生の男を救った
することが

ありがとうございました。あなたは私をたくさん助けてくれました。4000ポートを3000に置き換えるだけでadb reverseを使用しましたが、必要に応じて機能しました。
Marcus Crisostomo

やっとうまくいきました、ありがとう!
アレックス

38

この問題の迅速な解決策を見つけました。このリンクを試してください。問題の修正に役立ちます。

変更したのは1つだけです。チュートリアルでは、「127.0.0.1」を「すべて」に変更し、サーバーが実行されているIPアドレスに変更します。

その後、ローカルホストに接続できるはずです。


以下は、リンクされたページからの情報の(校正)コピーです。

ステップ1

Wampサーバー(または他の任意のサーバー)をインストールします。

これは、ローカルサーバーをセットアップするために私が知っている最高のサーバーの1つです。Apacheまたはその他のサーバーをインストールしている場合は、この手順を無視してください。

ここからWamp Serverをダウンロードしてインストールします。

ステップ2

Windowsファイアウォールでポート80の新しいルールを追加します。

  1. コントロールパネルを開き、Windowsファイアウォールを選択します。

  2. Windowsファイアウォールの設定ページの左側のパネルから[詳細設定]を選択します。

  3. 左側のパネルから[受信の規則]を選択し、[新しい規則]を選択します。

  4. 「ポート」を選択して「次へ」をクリックします。

  5. 「特定のローカルポート」ラジオボタンを選択し、ポート値として80を入力します。

  6. [接続を変更しない]を維持して、次の手順に進みます。

  7. プロファイルオプションを変更せずに、[次へ]をクリックします。

  8. 新しいルールに適切な名前を付け、[完了]をクリックします。

これにより、ローカルネットワークIPでポート80アクセスが有効になります。

ステップ3

Wampサーバーのhttpd.confファイルを編集して、403エラーを修正します。

このファイルを編集する必要があります。そうしないと、ローカルネットワークIPを介してローカルホストにアクセスするときに、403 forbiddenエラーが発生します。

  1. Wampサーバートレイアイコンをクリックします。

  2. Apacheサーバーのサブメニューを開きます。

  3. httpd.confを選択します。

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

「127.0.0.1」を検索して「すべて」に置き換え、ファイルを保存して、Wampサーバーを再起動します。

ステップ4

ローカルネットワークIPを見つけます。

  1. コマンドプロンプトを開きます。

  2. ipconfigコマンドを入力して入力します。

  3. 私の場合、私のローカルエリアネットワークアドレスは10.0.0.2です。

これは、WiFi経由でAndroidフォンのローカルホストにアクセスするために必要なIPです。動作しているかどうかをテストするには、ローカルホストサーバーがインストールされているデスクトップブラウザーにこのIPアドレスを入力します。ブラウザはlocalhostページを正常に表示するはずです。これにより、このローカルネットワークIPがAndroidフォンで正常にアクセスできるようになります。

このチュートリアルがwifi経由でローカルホストにアクセスするのに役立つことを願っています。


ありがとう!これはとても簡単に機能しました。たった一つ; 私はhttpd.confを次のように残しました# onlineoffline tag - don't remove Order Allow,Deny Allow from all
numediaweb 2013

1
チュートリアルはWindowsベースですか?えっ?
abbood

1
リンクが機能しなくなったため、その方法に関する情報がSOに追加されていないため、答え全体が役に立たなくなりました。
rtack

Wampサーバーv3の場合、禁止されたエラーが発生しました。vhosts情報を修正する方法については、この回答stackoverflow.com/questions/23382627/…を確認してください(上記のようにhttpd.confファイルを編集しないでください)
friek108

これはWampの本当に古いバージョンで、設定ファイルはかなり複雑になっています。特にVHosts機能を使用する場合。私はそれを理解することができません、オーバーライドの層が多すぎます。
ジョナサン

37

Windows PCの場合「ipconfig」コマンドを使用してIPv4アドレスを見つける以外に何もする必要がない場合があります。

  • ステップ1:USBケーブルを使用して電話をPCに接続します。
  • 手順2:コマンド「ipconfig」を使用して、IPv4アドレス(ルーターの外部IP)を確認します(私の場合は192.168.1.5)。
  • ステップ3:携帯電話のブラウザから「192.168.1.5:8080」にアクセスするだけです。できます !

その他の環境の詳細:Windows 7、Google Nexus 4(4.2.2)、Tomcatサーバー、Grailsアプリケーション。

また、AndroidManifestファイルでインターネットにアクセスする権限があることを確認する必要があります。

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

試しましたが「接続が拒否されました」と言い続けます。どうして?:(ポートは8080でなければならない現在、私のWebサービスが別のポートで実行されている?。
Trietドアン

2
私はあなたが8080の代わりに、独自のサーバポートを追加することができますポート8080でTomcatを使用していた
サンジェイ・クマール

そして、ウェブアプリはどうですか?ネイティブアプリではありません
amdev

私はまだ自分のローカルホストにアクセスできません
アンナレオネンコ'14

私はそれを試しましたがそれは言うjava.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Moeez

16

ただし、はるかに優れたソリューションがあります。IPアドレス「10.0.2.2」でホストマシンにアクセスできます。これは、Androidチームによってこのように設計されています。したがって、ウェブサーバーはlocalhostで完全に実行でき、Androidアプリから「http://10.0.2.2:8080」経由でアクセスできます。


4
それは本当です、トリックはあなたのマシンのローカルIPアドレスを指定し、あなたのAndroidデバイスとあなたのマシンの別名システムに接続された無線ルーター経由でそれにアクセスすることです
Akhil Jain

エミュレータをlocalhostと通信するために、まさにこれを探していました。ありがとう!!
Eagle

13

これは古い質問なので、これを行うには本当に簡単な新しい方法があります。ADB Chrome拡張機能をダウンロードして、次の手順に従います。

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


3
ADBは廃止されているため、ダウンロードする必要はありませんが、developers.google.com / chrome- developer- tools / docs /…にアクセスして、指示に従ってください。注:私はポート8443をlocalhost:8443に転送する必要がありました
Dimitris

これはデバイスのChromeからのURL呼び出しでのみ機能しますか、それとも私のアプリ内からも機能するはずですか?
Orkun Ozen

3
これにより、正しい方向に進むことができます。ChromeDev Toolsに関するより最近の回答は、Android Chromeリバースポートフォワーディング
Richard Le Mesurier、2015年

デバイスにGoogle Chromeがインストールされていなかったために行き詰まりました。どー!
チャドビンガム2016年

9

「Chrome for Androidのポート転送を使用すると、モバイルで開発サイトを簡単にテストできます。これは、モバイルデバイスでリッスンTCPポートを作成し、開発マシンの特定のTCPポートにマップすることで機能します。これらのポート間のトラフィックはUSBを経由します。そのため、接続はネットワーク構成に依存しません。」

詳細はこちら:https : //developer.chrome.com/devtools/docs/remote-debugging#port-forwarding


9

このソリューションは、モバイルデバイスとコンピューターが同じネットワークにない場合に使用できます。

この場合、ポート転送を使用する必要があります。Google Chromeの検査ウィンドウ(chrome:// inspect)では、接続されているデバイスを確認できます。 ここに画像の説明を入力してください

ポートフォワディングボタンをクリックし、ラップトップが使用するポート(たとえば8080)にランダムポート(たとえば3000)を設定します。

ここに画像の説明を入力してください

デバイスからlocalhost:3000を使用して、ラップトップのlocalhost:8080(or_whatever_ip:portno)にアクセスします。モバイルブラウザで確認できます。モバイルブラウザーでlocalhost:3000を試してください。[ポート転送設定]ウィンドウの[ポート転送を有効にする]チェックボックスを必ずオンにしてください


愛してる!これらの手順でチュートリアルを書く必要があります!
ラファエルゴメスフランシスコ

7

管理者としてCMDを実行する

CMD画面でipconfigと入力すると、画面にテキストが表示されます

この写真のように ここに画像の説明を入力してください

そしてあなたはあなたが接続しているあなたのPCと同じネットワークに接続しなければならないこのIPを使用してあなたのローカルホストにアクセスできます


ファイアウォールのスイッチを切るだけ
SalindaKrish

6

ネットワークサーバーではなく、ループバックインターフェイスでWebサーバーをリッスンしている場合があります。この主な兆候は次のとおりです。

  • ヒット127.0.0.1localhost(localhostまたはAndroidエミュレーターからの)動作
  • 192.168.xxx.xxxlocalhost、LAN、またはWANからのヒットは機能しません

これの診断と修正については、こちらの回答詳しく説明します


6

このファイルに移動してみてください: 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

そして、10.0.2.2をあなたのIPアドレスに変更します。


"Deny"の場合にフォームをすべて許可するように変更して申し訳ありません
bangptit

私はXAMPPを使用しており、この動画はそれを機能させるための答えを与えてくれました:youtube.com/watch
Leon

5

最後にUbuntuで行われました、私はlocalhost:8080でnodejsサーバーを実行しています

1)ターミナルタイプifconfigを開くと、次のようなipが表示されます。inetaddr:192.168.43.17

2)次のように単純にURLアドレスを入力します: "192.168.43.17:8080"(localhostのポート番号からの8080ポート)ex: "192.168.43.17:8080/fetch"


これは、同じネットワークに接続されている場合にのみ機能します。インターネットなしでも機能するものが必要です
Geek Guy

5

これをubuntu / Macbookで使用して、システムのIPアドレスを取得します。モバイルとシステムは同じネットワークにある必要があります

ip addr | grep inetこれにより、次のようなIPアドレスが表示されます192.168.168.46。スマートフォンでご利用ください。

お役に立てれば。


4

私はこのプロセスを使用しました:

  • FiddlerをインストールするPCにを
  • これらの優れた指示に従ってPCおよびAndroidデバイスをセットアップします
  • Androidデバイスのブラウザーに移動し、http://ipv4.fiddlerと入力してlocalhostにアクセスします

このプロセスでは、すべてのセッションの開始時と終了時にAndroidデバイスのWiFi設定を変更する必要があることに注意してください。私はこれが私のAndroidデバイスを応援するよりも痛みが少ないことに気づきました。


4

デフォルトのlocalhostに簡単な方法は、http:// localhost:portを使用することです。これはラップトップとAndroidでも機能します。

それが機能しない場合は、Androidで電話のデフォルトIPを127.0.0.1:portに設定します:)

ターミナルを開いて入力:-

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

3

いくつかの異なるlocalhostサーバーを使用してこの問題に遭遇していました。最後に、Pythonのシンプルなサーバーを使用するだけで、数秒で電話でアプリを起動して実行できました。それは数秒しかかからないので、より複雑なソリューションに入る前に試す価値があります。まず、Pythonがインストールされていることを確認します。cmd+rそしてpythonWindows用にタイプするか$ python --version Macのターミナルで。

次:

cd <your project root>

$ python -m SimpleHTTPServer 8000

次に、ネットワーク上のホストマシンのアドレスSystem Preferences/Sharingを見つけます。Macでそれを見つけるために使用しました。それをあなたのAndroidデバイスにタップするindex.htmlとあなたがロードされ、あなたは良いはずです。

そうでない場合、問題は別の問題であり、他の提案された解決策のいくつかを調べたい場合があります。幸運を!

*編集*

Chromeを使用している場合に試すもう1つの簡単な解決策は、Webサーバーfor Chrome拡張機能です。私はそれが私の携帯電話でlocalhostにアクセスするための迅速で超簡単な方法だとわかりました。ちょうどのAccessible to local network下で確認してくださいOptions、それは問題なくあなたの細胞で動作するはずです。

ここに画像の説明を入力してください


Python以外のサーバーサイド言語でも機能しますか?
MASh

3

ngrokを使用すると、ローカルホストを一時サーバーに配置でき、設定は非常に簡単です。リンクにあるいくつかの手順をここに示しました。

  1. 上記のリンクからngrok zipをダウンロードします
  2. ジップを開きます
  3. サーバーをローカルで実行し、ポート番号を書き留めます
  4. ターミナルで、ngrokが存在するフォルダーに移動し、次のように入力します。 ngrok http [port number]

ローカルホストを指すアドレスが付いた小さなダッシュボードがターミナルに表示されます。アプリをそのアドレスに向け、デバイスにビルドします。


これは、サーバーに外部からアクセスする場合にのみ役立ちます。サーバーのローカルIPアドレスをそのまま使用できます。
OneCricketeer 2017

3

まず最初に、携帯電話とコンピューターを一般的なwifiに接続します。

次に、管理者として実行を使用してコマンドプロンプトを開きます。

ipconfigコマンドを与える

無線LAN IPを示しています

電話でアクセスするには、サーバーのip:portを使用します


2

まず、マシン(サーバーが実行されている場所)のIPアドレスを静的にします。この静的IPアドレスをAndroidコードに入力します。次に、wifiルーターのインターフェースに移動し、左側のパネルを確認します。ポート転送/転送などのオプションが表示されます。それをクリックしてポート80を転送します。htttpd.confファイルを編集して、

すべてから許可

。サーバーを再起動します。すべてが正常に動作するはずです。

さらに、マシンのIPアドレスを予約して、常に割り当てられるようにすることができます。ルーターのインターフェースの左側のパネルで、を見つけてDHCP -> Address Reservationクリックします。マシンのMACアドレスと、コードに入力したIPアドレスを入力します。保存をクリックします。これにより、指定したIPアドレスがマシンに予約されます。


2

私のラップトップに基づいて私のモバイルデバイスを私のWampサーバーに接続するソリューション:

まず、wifiはルーターではありません。ラップトップのlocalhostに基づいてモバイルデバイスをwampサーバーに接続するには、ルーターが必要です。無料の仮想ルーターをダウンロードしてインストールしました:https : //virtualrouter.codeplex.com/

設定は本当に簡単です:

  1. システムトレイの仮想ルーターアイコンを右クリック
  2. [仮想ルーターの構成]をクリックします
  3. パスワードを入力してください
  4. インターネット接続がイーサネットの場合は、[共有接続:イーサネット]を選択します
  5. 次に、ラップトップとデバイスでWi-Fiをオンにします
  6. デバイスで仮想ルーターのネットワーク名に接続します

次に、ブラウザーを起動してラップトップのIPV4アドレスを入力することにより、デバイスを介してラップトップに接続できます(Windowsでそれを見つけるには、cmdと入力します:ipconfig、そしてipv4アドレスを見つけます)。

wampサーバーのホームページが表示されます。


2

1つの回答は受け入れられましたが、これは私にとってはうまくいきましたが:

  1. コンピューターとAndroidデバイスの両方が同じネットワーク上にあることを確認してください。
  2. コンピュータのIPアドレスを取得します。(ifconfigターミナル内のMacタイプの場合、en0/en1 -> inetそれがのようなものであることを確認してください19*.16*.1.4。)(Windowsでは、 `ipconfigを使用します)
  3. モバイル設定を開き、ネットワークに移動します-> Wi-Fiネットワークを長押しします->ネットワークを変更します->スクロールして詳細オプションに移動します->プロキシマニュアルを選択し、プロキシホスト名にアドレスを19*.16*.1.4入力します。つまり、内部ポートでポートを入力します。それを保存します。

  4. what is my ipグーグルクロームで検索し、あなたのIPを取得し、それがそうだとしましょう1**.1**.15*.2**

  5. 1**.1**.15*.2**:port/モバイルデバイスからアクセスしてみ てください。

これと同じくらい簡単です。


WiFi経由のプロキシは不要で、ローカルネットワーク内の外部IPアドレスも不要です
OneCricketeer

2

これは私にとってうまくいきました、私が使用したいデバイスの正確なローカルネットワークIPアドレス(パブリックIPアドレスではなく)を指定するために、127.0.0.1 IPの後に別の行を追加しました。私の場合、Samsung Galaxy S3

Bangptitで提案されているように、httpd.confファイルを編集します(xはバージョン番号です):C:\ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf

onlineofflineタグを検索し、電話のIPを追加します(ルーターの設定ページで電話のIPアドレスを見つけました)。

onlineofflineタグ-削除しないでください

 Order Deny,Allow
 Deny from all
 Allow from 127.0.0.1

私の電話は下の行にIP

 Allow from 192.168.1.65 
 Allow from ::1
 Allow from localhost

これを拡張して、たとえば192.168.1.0/24などのサブドメイン全体を含めることもできます。


2

最も簡単な方法(これは私にとって完璧に機能しました)は、ローカルでサイトをホストし、0.0.0.0:<port_no>モバイルデバイスを使用<local_ipv4_address>:<port_no>/<path>してアクセスし、ブラウザーで使用することです。

  • ローカルのIPv4アドレスを知るには、次のように入力します ipconfigは、cmdし
  • 同じネットワークに接続されているすべてのデバイスがこのURLにアクセスできます。

2

Ngrokは最良のソリューションです。PHPを開発している場合は、Laravel Valetをインストールすることをお勧めします。これにはMacOSバージョンとLinuxバージョンがあり、valet shareコマンドを使用できます。フロントエンド技術を開発していて、3000のようなポートを共有する必要がある場合は、ngrokを直接使用しますngrok http 3000


1

将来の開発者のためのソリューションを追加します。

IPアドレスのアドレスをコピーします。ネットワークを右クリック->ネットワークと共有->現在使用している接続をクリック->詳細->次に、ipv4アドレスの横のアドレスがIPアドレスです。これをどこかにメモしてください

コントロールパネル->システムとセキュリティ-> Windowsファイアウォール->詳細設定->インバウンドルール->新しいルール(80などのポートを追加する手順に従ってください)

メモしたIPアドレスを電話のブラウザに、その横にルールを作成したポート番号を入力します。例:192.168.0.2:80およびwala。

接続しない場合の考えられる解決策。ネットワークを右クリックし、[ネットワークを開いて共有]をクリックします。アクティブな接続を確認し、接続の種類で接続の名前の下に表示されます。接続がパブリックの場合はクリックし、必ずホームネットワークに変更してください。


1

チェックすべきもう1つのことは、2.4Gと5Gの両方が有効になっていて、デバイスの周波数が異なる場合に、一部のルーターで要求のブリッジに問題があることです。両方のデバイスが同じインターフェイスに接続されるように、周波数の1つを無効にしてみます。



0

個人的には、デバイスを使用するときにlocalhostを使用するように要求することはなく、簡単な解決策はありません。

エミュレータを使用できるlocalhostに接続するアクティビティを開始するだけです。デバイスから取得する必要のある情報はすべて簡単に生成でき、パラメータとしてアクティビティに送信できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.