ホーム ネットワーク上の別のローカル コンピューターでホストされているローカル開発 Web サイトにアクセスしたいと考えています。
私は使ってみましたhttp://192.168.1.nnブラウザで http://localhost と入力しましたが、どちらも見つかりません (サーバー コンピュータの IP アドレスは 192.168.1.nn です)。
コンピュータ nn で実行すると、localhost とその Web サイトに問題なくアクセスできます。
Windowsの設定を使用して、nnコンピュータへの認証されていないアクセスを許可しようとしました(Defenderファイアウォール、およびMalwarebytes > 設定 > 許可リスト > 追加 > 192.168.1.nn)。ルーターのポート転送ルールを使用して、ポートmmをコンピュータnnに転送しようとしました(アドレスhttp://localhost:mmまたはhttp://192.168.1.nn:mm)。Hosts ファイルに次の行を追加してみました:
192.168.1.nn ローカルホスト
ネットワークの内部についてはあまり詳しくありません。1台のコンピュータから別のコンピュータにLAN-LAN Web接続を行いたいのですが、外部(WAN)に何もアクセスさせない私のネットワーク上で。テスト済みの回答で助けが得られれば、質問と回答が多すぎずに機能すると思います。
答え1
セキュリティ上の理由から、追加情報を提供することに消極的なようですので、この問題を解決するために検討すべき事項に関する一般的な考えとコメントを以下に示します。
サードパーティアプリケーション
テスト中はファイアウォールやウイルススキャンを無効にしてください。サードパーティのアプリケーションやハードウェアが、設定したルールを超えて、2 台のコンピューター間の通信に影響を与える可能性があります。
サーバーに仮想マシンを使用している場合は、仮想マシンにアクセスできるようにするために、(ホスト上のものに加えて) 仮想マシン自体の追加構成を行う必要がある場合があります。
仮想マシン ソフトウェアには、ローカル ネットワークの一部とは見なされない「ホスト専用」仮想ネットワーク アダプタのオプションがある場合があります。「ホスト専用」ネットワーク アダプタ (存在する場合) に割り当てられた IP 経由でリモート アクセスを試みていないことを確認してください。
仮想マシンでは、ブリッジ アダプターを実行していない場合、アクセスを許可するためにポート転送 (仮想マシンのソフトウェア経由) が必要になることがあります。
WSL を使用している場合は、WSL を具体的に更新するか、Windows 全体を更新する必要がある場合があります。
ローカルネットワーク
コンピュータが同じローカル ネットワーク上にあることを確認します。ルーターのネットワーク マスクを確認します。通常は同じであるはずです。また、ネットワーク DHCP サーバー (ルーターなどにある可能性が高い) が、接続するデバイスに同じ範囲のローカル アドレスを配布していることを確認します。
ネットワーク マスクを例とすると
255.255.255.0
、サーバーのアドレスが例であり、http://192.168.1.nn
サーバーにアクセスするために使用しているコンピューターのアドレスが例である場合http://192.168.2.nn
、それらは同じローカル ネットワーク上にはありません。指定していない特別なネットワーク設定がない限り、同じネットワーク上のデバイス間の基本的な通信には、ルーターのポート転送は必要ありません。
モバイル デバイスを使用してローカル ネットワークからサーバーにアクセスしようとしている場合は、キャリアのデータ プランではなく Wi-Fi を使用していることを確認してください (これは WAN アクセスのテストにのみ役立つため)。
一般的には、ルーターによって割り当てられたローカル アドレスのみを使用する必要があります (つまり、ISP によって割り当てられた IP は使用しないでください)。
一般的に、複数のルーターを使用したり、Wi-Fi アクセス ポイントを使用したり、「高度な」ネットワーク機器 (メッシュ ネットワーク ハードウェアなど) を使用したりすると、(理論的には) 問題が発生する可能性があります。
ホスト名
この
hosts
ファイルは、そのファイルが存在するコンピュータにのみ適用されます。したがって、hosts
サーバー上のファイルでは、ローカル ネットワーク上の他のコンピュータが、そのファイルで指定されているホスト名を解決することはできません。hosts
変更が必要なのは、アクセスを試行しているコンピュータ上のファイルです。localhost
は任意の名前ではありません。ほとんどの場合、のみローカル コンピュータを指します。つまり、通常はリモート サーバー (つまり、同じコンピュータ上にないサーバー) を参照するために使用することはできません。これは仮想マシンにも適用されることに注意してください。localhost
の変更はhosts
可能ですが、ブラウザによって無視される可能性があり、ブラウザは代わりにex. 127.0.0.1
リモートからアクセスできないローカル ループバック アドレス ( ) を返すだけです。Linux (Raspberry Pi や WSL など) を使用している場合は、
hosts
ファイルの編集に加えて、リゾルバ構成に関する追加の手順を実行する必要がある場合があります。基本的なテストでは、接続の問題を特定のホスト名ではなくサーバー自体への接続に限定するために、IP アドレスを使用し続け、あらゆる種類のホスト名を避けることをお勧めします。
各デバイスごとにホスト名を変更せずに使用したい場合は
hosts
、ローカル DNS サーバーをセットアップし、それに応じてルーターを構成する必要があります。hosts
サーバーにアクセスしたいホスト名に対して、サーバーを指すエントリまたは DNS エントリが必要です。
アパッチ
リモート サーバーで Apache が実行されていることを確認します。
Apache の応答が妨げられることはありませんが、Apache に指定されたホスト名の仮想ホストがない場合、デフォルトの Web ページまたはエラー ページが返される可能性があります。
Apache サーバーまたはその仮想ホストの設定により、別のコンピューターからのアクセスが拒否される可能性があります。そのため、サーバーへのアクセスを制限するディレクティブがないことを再度確認してください。ディレクティブの設定から
Require
始めるのがよいでしょう (これらのディレクティブの値は通常 ですall granted
)。特定の仮想ホストの
ServerRoot
およびDocumentRoot
設定 (およびDocumentRoot
ディレクトリ設定) およびhttpd.conf
/または/directory 設定に不整合またはエラーがあると、応答が発生する可能性があります。DocumentRoot
403 Forbidden
ファイルを使用すると、
.htaccess
ファイル内の設定に応じてサーバーへのアクセスが制限される場合があります。listen
ディレクティブ (例: ) が、例: or ではなく、and/or のhttpd.conf
ようなものに設定されていることを確認します。2番目のタイプのディレクティブは、Apache を/のみでリッスンするように連鎖し、サーバー自体以外のコンピューターからの要求を破棄します。listen 80
listen 443
listen 127.0.0.1:80
listen 127.0.0.1:443
127.0.0.1
localhost
listen
Apacheを 80 またはポート 443 (HTTP/HTTPS のデフォルト ポート) 以外のポートに設定している場合は、そのポートを IP またはホスト名に含める必要があります (例:192.168.1.nn:8080
またはlocal-example:80
)。Apache に変更を加えた場合は、その変更を有効にするために Apache を再起動する必要があります。
Linux の Debian/Ubuntu ベースのシステムでは、再起動する前に
sites-available
フォルダー内のファイルからフォルダーへのシンボリックリンクを作成してsites-enabled
から、それらを使用できるようにする必要が生じる場合があります。