web-dev-qa-db-ja.com

ネットワーク外からWebサーバーにアクセスできないのはなぜですか?

MacbookにApache HTTPサーバーをセットアップしたので、PHPの全機能にアクセスできるようになりました。言語を習得しています。登録済みのドメイン名や一貫したネットワークを持っていません。アクセスなので、このサーバーで実際のWebサイトをホストするという考えは実現できません。これは、学習目的のためだけに行っています。

とにかく、なにか気になっていました。プライベートIPアドレスをWebブラウザーに入力すると(ループバックアドレスではなく、実際にDHCPが割り当てたアドレス)、サーバーがホストするWebページにアクセスできることに気付きました。これは、コンピューターの外部からアクセスできることを意味します。ただし、パブリックIPアドレスを入力すると、ネットワークタイムアウトが発生します。これは、ローカルネットワークの外部からWebサーバーにアクセスできないことを意味します(接続が非常に遅い場合を除きます)。

なんでこれなのかしら。外部からLAN内のコンピューターにアクセスできないようにするセキュリティレイヤーが設定されていますか?

6
user628544

コンピューターから始まる行に3つのブロッキングホップがある場合があります。

  • お使いのOSにファイアウォールが設定されており、着信リクエストをブロックしている可能性があります。これは、同じサブネットまたは異なるサブネット上の別のマシンを使用して確認できますが、ホームルーターの背後にあります。私はMAC OSに精通していないので、ファイアウォールの設定方法を説明することはできません。

  • 接続先のホームルーター(またはほとんどのwifiルーター)は、 [〜#〜] nat [〜#〜] を使用して、その背後にあるサブネットを「隠し」、複数のデバイスが単一のデバイスで通信できるようにしますISPから取得するグローバルIPアドレス。 LANから任意のデバイスからリモートサーバーにリクエストを送信すると、リモートはリクエストがルーターによって発信されたものであると認識します。 外部からパブリックIPアドレスへのリクエストを行う場合、実際にはルーターのアドレスを指定します。ルーターにアドレス指定されたすべてのHTTPリクエストを処理する場合背後にあるラップトップで、ルーターのメニューのport-forwardルールをラップトップのIPアドレスとポート80(標準HTTPポート)に追加する必要があります。 、またはHTTPSの場合はポート443。

  • 最近では、ISPがパブリック(グローバルにルーティング可能な)IPアドレスを提供しないこともますます一般的になっています。 ISPはNAT(グローバルIPv4アドレスを保存するため)も使用します)、ルーターの外部IPアドレスはISPのプライベートサブネットから取得されます。これには、ISPのルーターにポート転送ルールを登録する必要がありますこの場合、インターネットからラップトップにアクセスできません。

7
Gábor Móczik

これが発生する理由は、NAT Translationsによるものです。

インターネットに接続すると、ISPからパブリックIPアドレスが提供されるので、インターネットと通信できます。

インターネット上の誰かがあなたのウェブサーバーにアクセスすることを望んでいて、彼らがパブリックIPアドレスを入力するとき、ルーターはリクエストがネットワークのどこに向かっているかを知る必要があります。これは、NAT変換と呼ばれます。ポートマッピングを設定することによって行われます。

WebサイトはHTTPトラフィックを使用します。デフォルトはポート80であるため、ルーターでルールを作成して、ポート80を内部IPアドレスに転送する必要があることを通知する必要があります。これが完了すると、外部の誰かがあなたのブラウザにあなたのパブリックIPアドレスを入力すると、あなたのルーターはあなたのMacbookにリクエストを転送する必要があることを認識します。

さて、質問への追加が1つあります。ポート転送を設定した場合、ほとんどのルーターはあなたのパブリックIPアドレスが自分のものであることを理解しないため、おそらく自分のパブリックIPアドレスからWebサイトにアクセスすることはできません。

Macbookがルーターにリクエストを送信し、ルーターがそれをISPに送信します。ISPはリクエストを返送し、ルーターはそれを予期していないため、リクエストを無視し、自身に接続できないためタイムアウトになります。

4
LPChip