2016-09-13 13 views
0

これはかなり基本的な質問ですが、私はそれに対する答えを見つけることができませんでした。私は既にthis questionthis questionthis questionthis question、およびthis questionを見ていて、どれも答えに手を貸さなかった。起動アプリを起動し、ローカルネットワークの外部からアプリにリクエストをしてください。

私はRails 4.2を使用しています。私は次のことができるかどうかをテストするための非常にシンプルなアプリケーションを作成しました:

の外部からのアプリにアクセスすることが可能かどうかを確認したいと思います私のローカルネットワーク。たとえば:私の電話(ローカルネットワークに接続されていない)から、私はリクエストを行い、応答を得たいと思う。

私は最初に外部/ルーティング可能なIPアドレスを取得する必要があると仮定しました。私のISPが私のルータに提供するIPアドレスは静的ではないことを認識していますが、デモ目的のためにただ一つのリクエストを成功させることができたかどうかを知りたかったのです。

私はgoogleに行き、「私のipとは何ですか?」と入力し、私の外部IPアドレス(私の外部IPアドレスはふりかけることにしましょう:11.111.111.111)で戻ってきました。私のレールのアプリ内

:私は、次のコマンドました:

rvmsudo rails s -p 80 -b 11.111.111.111 

を私は外部IPアドレスにバインドしたい、と私はポート80でリッスンしたい私は、ので、私としてrvmsudoを行いますそれを理解するには、1000未満のすべてのポートにはより高い特権が必要です。

またエラーが出て、次の言葉:

要求されたアドレスを割り当てることができませんが - バインド(2)

私はこれが出erroringされる理由を理解しようとしています。私は何を理解していないのですか?私は一歩足りませんか?これはできませんか?私のISPは、その外部IPにバインドできないようにしていますか?ルータで追加の設定を行う必要がありますか?

私はただ英雄を使うことができることを知っています。これが可能であるかどうかを確認するための実験です。前もって感謝します!

+1

GoogleがISPによって割り当てられたルーターのパブリックIPアドレスで報告IPアドレス。 Railsアプリケーションへのアクセスを許可するには、ルータ上でポート転送を設定する必要がありますが、このサイトはその方​​法を尋ねる場所ではありません。 [superuser.com](http://superuser.com)を試してください。 – Mick

+0

あなたは '8080'を試すことができますか? –

+1

@TarynEastこれはポート番号の問題ではありませんが、パブリックIPはサーバーが稼動しているコンピューターのインターフェースではありません。 –

答えて

0

ソケットを外部IPにバインドすることはできません。このIPは、ISPによってモデム(またはインターネットに接続するために使用するもの)に割り当てられます。コンピュータのインターフェイスにのみバインドできます。

は、複数のソリューションがあります。

  • バインド0.0.0.0:3000に(またはコンピュータのIP、localhostではありません)と、ネットワークがそのポート上のコンピュータにパブリックIPを転送していることを確認してください。
  • 使用https://ngrok.com/簡単でシンプルな
のようなもの
関連する問題