web-dev-qa-db-ja.com

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

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

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

38
Tony

まず、ウェブサーバーを実行しているマシンのIPアドレスまたは名前を確認する必要があります。手順はLinuxマシンでも同様ですが、投稿にmacosxのタグを付けたため、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セッションを終了します。
  • 次に、クライアントマシンに接続してみます。
    • これがWebアプリの場合、ブラウザー経由で接続できるはずです。
    • たとえば、 http://192.168.10.1:30 を試してください

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

39
Phil Hollenback

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

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

_ipconfig getifaddr en1_

または一般的に

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

13
James

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

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

  1. Mac-> Sys Preferences-> Sharing-> Enable“ Web Sharing”チェックボックス
  2. Mac-> Sys Preferences-> Security->アプリケーション(Rubyなど)が着信接続を受け入れるようにする
  3. ルーターのポートを開き(192.168.1.1経由)、your_web_ip:portからlocal_gateway:portにトラフィックを転送します

    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で実行しています

6
Chase T.

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

2
Sven

アプリケーションが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を開きます。

2
Sameer

あなたはこれを試しましたか、それは私のために働きました(私はそれとは関係ありません):

https://github.com/progrium/localtunnel

1
IanVaughan