Web サーバーをローカルホストから LAN にルーティングするにはどうすればよいですか?

Web サーバーをローカルホストから LAN にルーティングするにはどうすればよいですか?

私はデスクトップ (IP = 192.168.8.2、Windows 10) 上の Microsoft Visual Studio で Web アプリを開発しています。開発中、Visual Studio は基本的に localhost:44396 にバインドされた Web サーバーになります。そこから、ブラウザーを起動して https://localhost:44396/ にアクセスすることで、Web サイトを参照およびテストできます (Visual Studio によって作成された自己署名証明書付きの https であることに注意してください)。

舞台裏で何が起きているかというと、Visual Studio で「デバッグの開始」をクリックすると、「サーバー モード」になり、iisexpress がサーバーになるように自動的に構成され、Web サイトを直接自動的に表示するブラウザー ウィンドウが起動されます。

問題は、iPad と Android フォン (同じ LAN に接続されており、192.168.8.2 にバインドされた Web サーバーにアクセスできることは 100% 確信しています。すでにアクセス済みです) から Web サイトを閲覧したいということです。

携帯電話とタブレットをデスクトップ コンピューターの「内部」にあるかのようにブラウズし、開発 Web サイトにアクセスするにはどうすればよいでしょうか。

答え1

Visual Studio では、プロジェクト プロパティでこれを変更できます。

プロジェクトのプロパティ

下のセクションで、 の代わりにhttp://localhost:whatever、 のように、目的の「アプリ URL」を入力しますhttp://192.168.8.2:1234。残念ながら、「SSL を有効にする」の URL は、プロジェクト プロパティを保存して再度開くまで更新されません。

これらの設定は./Properties/launchSettings.json、プロジェクト ディレクトリを基準とした に保存されます。


一方、IIS Expressを使用しない場合、「アプリURL」は若干異なります。デフォルトでは ですhttps://localhost:5001;http://localhost:5000。変更は簡単です。追加URL を変更するのではなく、セミコロンで区切られたリストになります。

答え2

まず、開発用コンピュータからウェブサイトを開けるかどうかを確認します。https://192.168.8.2:44396

その部分がすでに動作しているという意味かどうかはよくわかりませんので、念のため追加しました。

その後、iPadでも同じことができるはずです。ドメイン名を入力する代わりに、https://192.168.8.2:44396

それでも問題が解決しない場合は、ファイアウォールでポート 44396 が開いていることを確認してください。これはネイティブ ポートではないため、Windows ファイアウォールによってローカル PC (つまり localhost) 以外からのアクセスがブロックされている可能性があります。そのため、ネットワーク全体でポート 44396 を有効にする必要があります。ルーターでポート転送ルールを作成しない限り、インターネットからアクセスできないため、パブリックに設定しても問題ありません。

また、https が使用するポート 443 が開いていることを確認してください。

これを一般に公開する予定の場合は、すべてのルーターが NAT ヘアピンをサポートしているわけではないことに注意してください。そのため、ブラウザに WAN IP を入力するだけでは機能しない可能性があります。確実に機能するかどうかは、ネットワークの外部からテストする必要があります。

関連情報