ラップトップのローカルWebサーバーに別のコンピューターからアクセスするにはどうすればよいですか?[閉まっている]


37

コンピューターで127.0.0.1:3000にアプリを実行しています

同じネットワークに接続されたiPhoneからそのアプリにアクセスしたいと思います。私はこれを以前にやったことがありますが、私はそれをどうやってやったかを消しています。何か案は?


2
試してrails server -b 0.0.0.0から、これをiPhoneでブラウザします。
-zx1986

回答:


37

最初に、Webサーバーを実行しているマシンのIPアドレスまたは名前を決定する必要があります。macosxLinuxマシンでも手順は似ていますが、投稿にタグを付けたため、MacでWebサーバーを実行していると想定しています。だから、あなたのMac上で:

  • オープンTerminal.app。の下にありApplications->Utilitiesます。
  • ifconfigターミナルで実行します。これにより、マシン上のすべてのネットワークインターフェイスが表示されます。それらの1つは、マシンがアクティブに接続されているネットワークです。あなたならば、MACはする必要があります有線接続ですen0。後のアドレスをメモしますinet-それはあなたのマシンが使用するアドレスであるべきです。
    • 192.168.10.1であることがわかったとしましょう。
  • サーバーからそのアドレスに接続できることを確認しますnc -v 192.168.10.1 3000
    • のようなメッセージが表示されるはずConnection to 192.168.10.1 3000 port [tcp/http] succeeded!です。
    • それでも解決しない場合は、以下を参照してください。
    • 動作する場合は、ヒットctrl-Cしてncセッションを終了します。
  • 次に、クライアントマシンで接続してみます。

サーバーの実際のアドレスでアプリケーションに接続できない場合、アプリケーションはそのアドレスでリッスンしていないことを意味します。アプリケーションの構成を変更してその動作を変更する方法を調査する必要があります。実行しているアプリケーションがわからないので、それに関する良いアイデアを提供することはできません。


10x mate ... Wampサーバーを搭載したWindowsベースのシステムについて話すときの違いは何ですか?違いはありますか?
Sagive SEO

Mac Sierraを使用しています。10.55.18.22:3000経由でMac(サーバーが実行されている)からサーバーにアクセスできますが、両方が同じネットワーク内にあるにもかかわらず、別のマシンからはアクセスできません。Web共有オプションは、シエラでは利用できません。どうすればこれを機能させることができますか?
サントッシュクマー

saanthosh:ルーターのポート転送を調べてください。それが、OSXのインターネット共有機能(少なくともOSX 10.6以降で利用可能だったようです)を発見する前にやっていたことです。OSX開発マシンと同じ部屋/ネットワーク内のさまざまなモバイルデバイスでlocalhostテストを行いました。これは、ルーター構成の標準/小さな変更(ポート転送など)によって可能になりました。他の記事とSOスレッドは、ルーターの構成に関する情報を提供します。最終的に、私は現在新しい場所にいて、ルーターにアクセスできないため、代わりにOSX(High Sierra)インターネット共有を使用して同じことを実現しています。
-MarsAndBack

12

hostname(ターミナルプロンプトで)を使用してMacの名前を見つけ、URLで使用します。例:http://Tonys-iMac.local:3000 /

何らかの理由でBonjourが環境で機能しない場合は、iMacまたはMacBookで空港の住所を見つけてください。

ipconfig getifaddr en1

または一般的に

ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')


この回答には、ホスト名とIPアドレスの検索に関する最適化がいくつかあります。
フィルホレンバック

2
なぜbonjourは機能しないのですか?ホスト名はgm20152.localです。しかし、同じマシンでgm20152.local:3000を試すと、有効なページが表示されます。しかし、Android携帯電話でgm20152.local:3000を試すと、携帯電話のブラウザでホストが見つかりませんでした。私の携帯電話にはgm20152.localをMacbookのIPアドレスにマッピングする方法がないためだと思います。どうすればこれを達成できますか?
gprasant 14

@gprasant AndroidでBonjourを使用するのはかなり難しいようです
ジェームズ14

5

基本的に、ファイアウォール設定から、特定のアプリケーション(例えば、ruby)が着信接続を受け入れることを許可できます。さらに、外部の世界(wwwなど)へのアクセスを許可するには、ルーター設定を介して内部gateway:portにトラフィックを転送する必要があります。

これを行う方法は次のとおりです。

  1. Mac-> Sys Preferences-> Sharing-> Enable“ Web Sharing”チェックボックス
  2. Mac-> Sys Preferences-> Security->アプリケーション(例えば、ruby)が着信接続を受け入れることを許可する
  3. your_web_ip:portからlocal_gateway:portにトラフィックを転送するために(192.168.1.1経由で)ルーターのポートを開きます

    1. たとえば、Verizonのルーター設定->ポート転送->ルールの作成:ローカルゲートウェイ(例:192.168.1.4)、カスタムポート、プロトコルtcp、source = any、destination = 3280、すべての接続タイプに転送、ポート= 3000に転送。

できた これで、リモートコンピューターからブラウザーを開き、Web IPアドレス(http://www.whatismyip.com/で検索)+上記の宛先ポート番号(例:72.189.194.65:3280)を入力すると、ローカルの192.168.1.4に接続します。 :3000

注:Mac OSX 10.7.5で実行しています


2

127.0.0.1は、すべてのコンピューターが自分用に持っているローカルアドレスです。マシンの実際のIPアドレス(またはHost / Bonjour名)を確認する必要があります。[システム環境設定]、[ネットワーク]に移動し、ケーブルを使用する場合はイーサネットポート、WLANを使用する場合は空港のいずれかのマシンのIPを検索します。次に、このアドレスをiPhoneのSafariで:3000パーツとともに開きます。


また、共有設定ペインには、コンピュータにアクセスできる名前またはアドレスが常に表示されます。
ジェームズ

2

アプリケーションが127.0.0.1:3000のみでリッスンしている場合、別のコンピューターからアクセスすることはできません。そのためには、IPまたは0.0.0.0(使用可能なすべてのインターフェイス)をリッスンするように構成を変更する必要があります。オプション1。

2番目のオプションは、プロキシを使用することです。

3番目のオプションは、iPhoneからsshできる場合は、ssh転送も使用できます。

ssh user @ host -L 3000:127.0.0.1:3000

次に、iPhoneで127.0.0.1:3000を開きます


1
私の知る限り、iPhoneでsshポート転送を行うことはできません。とにかくジェイルブレイクされていなければ。
スヴェン

聞いて0.0.0.0!どうしてそんなことを考えられなかったのでしょうか?
グスタボ・シュトラウベ

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