ネットワークインターフェースの詳細:localhost、ループバックアドレス、およびローカルネットワーク
Takashi Yamamoto
Infrastructure Engineer · Leapcell

多くのコンピューターユーザーは、localhost
、127.0.0.1
を使用したり、ローカルマシンのIPアドレスを直接入力したりするシナリオに遭遇したことがあるでしょう。一見すると、これら3つの方法はすべてローカルマシンにアクセスしているように見えますが、なぜこれら3つの異なる形式が存在するのでしょうか?それらの違いは何でしょうか?これらは似ているように見えるかもしれませんが、実際には非常に重要な違いがあります。
さらに、パブリックネットワークとプライベートネットワーク、ネットワークインターフェースカード(NIC)、およびIPアドレスの関係について混乱しているかもしれません。以下の説明でこれらのトピックを明確にします。
ローカルマシンのIP
コンピューターのマザーボードには、複数のネットワークインターフェースカード(NIC)が組み込まれています。これらは通常、次のタイプに分類されます。
仮想NIC(ループバック)
注: これは物理的なネットワークインターフェースではなく、仮想ネットワークインターフェースです。ローカルループバックアドレス(またはインターフェース)とも呼ばれ、通常は127.0.0.1
がローカルループバックアドレスとして使用されます。
有線NIC / イーサネットカード
これは、イーサネット(ローカルエリアネットワーク)に使用されます。ネットワークカードと言う場合、通常はこのタイプを指し、ケーブルを介してネットワークに接続します。
無線NIC(WLAN)
このタイプのネットワークカードは、無線ローカルエリアネットワーク(WLAN)に使用されます。ラップトップには通常、無線NICが内蔵されており、無線技術を使用するため、イーサネットカードのように物理的なケーブルは必要ありません。
これらの各ネットワークインターフェースには、ローカルマシンのIPアドレスが割り当てられています。
localhost
は特別なドメイン名
まず第一に、localhost
はIPアドレスではなく、特別なドメイン名(サフィックスなし)です。デフォルトでは、ローカルIPアドレス(127.0.0.1
)に解決されます。localhost
の解決は、ローカルのhosts
ファイルを介して管理されます。必要に応じて、localhost
をパブリックIPアドレスまたはその他のIPアドレスに解決するように設定できます(これはhosts
ファイルを使用して変更できます)。ただし、ほとんどの場合、次のように解決されます。
- IPv4:
127.0.0.1
- IPv6:
[::1]
hosts
ファイルの場所:
C:\Windows\System32\drivers\etc
127.0.0.1
はローカルマシン用に予約されたプライベートIPアドレス
127.0.0.1
は、ローカルループバックアドレスを表すプライベートIPアドレスです。これは基本的に、仮想NIC(ループバックインターフェース)にバインドされたIPアドレスです。
ループバックアドレスとは?
ループバックアドレスは、ホストが自身と通信するために使用する特別なアドレス(つまり、特別な宛先アドレス)です。
同じホスト上の2つのサービスが、割り当てられたマシンアドレスの代わりにループバックアドレスを使用する場合、TCP/IPプロトコルスタックの下位レイヤーをバイパスできます。これは、通信がリンク層、物理層、またはイーサネットを通過する必要がなく、代わりにネットワーク層とトランスポート層内で直接処理できることを意味します。
ネットワーク番号が127
のアドレスブロックは、実際にはネットワークアドレスではありません。この範囲内のアドレスに送信されたIPパケットは、外部ネットワークインターフェースに送信されず、ホスト内に留まります。
したがって、127.0.0.1
は、ローカルTCP/IPスタックのテストに頻繁に使用される予約済みアドレスの1つです。このアドレスに正常にpingを実行できる場合、マシンがネットワークに接続されているかどうかに関係なく、ネットワークインターフェースカード(NIC)とIPプロトコルスタックが正しくインストールされていることを示します。
実際、IPv4はループバックテスト用に127.0.0.0/8
サブネット全体を予約しています(いくつかの例外あり)。127.0.0.1
は、この範囲内のアドレスの1つにすぎません。この範囲内の任意のアドレスにpingを実行したり、ローカルWebサービスにアクセスするためにWebブラウザにこのようなアドレスを入力したりできます。
もう1つよく混同されるIPアドレスは0.0.0.0
です。127.0.0.1
とは異なり、0.0.0.0
は異なる方法でマシン自体を表し、異なるコンテキストで使用されます。
使用例:
コンピューターに2つのNICがあるとします。
- 1つは、インターネットに接続するためにパブリックIPを使用します。
- もう1つは、ローカルネットワークに接続するためにプライベートIPを使用します。
コンピューターがWebサービスをホストし、外部(インターネット)および内部(LAN)ソースからのアクセスを許可したい場合、0.0.0.0
でリッスンするようにサーバーを構成できます。
localhost
、ローカルマシンIP、および127.0.0.1
の違い
ネットワーク要件
localhost
と127.0.0.1
は、アクティブなネットワーク接続を必要としません。マシンが完全にオフラインの場合でも、これらのアドレスにアクセスするとローカルシステムに解決されます。- ローカルマシンIP(有線および無線ネットワークIP)には、アクティブなネットワーク接続が必要です。これらは、マシンへの外部アクセスを可能にするIPアドレスです。
アクセス範囲
localhost
はローカルアクセスのみに使用されます。127.0.0.1
もローカルアクセスのみに使用されます。- ローカルマシンIPは、ローカルおよび外部アクセスの両方に使用できます。
ドメイン vs. IPアドレス
localhost
はドメイン名であり、デフォルトでは127.0.0.1
に解決されます。- ローカルマシンIPは、マシンの物理NICに割り当てられた実際のIPアドレスであり、外部デバイスがそれにアクセスできます。
ローカルネットワークでの使用
- **ローカルエリアネットワーク(LAN)**内では、同じサブネット内のコンピューターは、マシンに割り当てられたIPアドレス(プライベートIP)を使用して接続できます。これは、ローカルでのみ使用される
localhost
または127.0.0.1
には適用されません。
ネットワークインターフェース(NIC)アドレスとIPアドレス
NICアドレス(MACアドレス)
NIC(ネットワークインターフェースカード)アドレスは、MACアドレス(Media Access Control)とも呼ばれ、ネットワークデバイスを一意に識別するために使用される物理またはハードウェアアドレスです。
OSIモデルでは、
- **ネットワーク層(レイヤー3)**は、IPアドレスを担当します。
- **データリンク層(レイヤー2)**は、MACアドレスを担当します。
各MACアドレスは一意であり、デバイスのNICに割り当てられます。これはグローバルに一意であり、IDカード番号が個人を一意に識別する方法に似ています。
IPアドレス
IPアドレス(インターネットプロトコルアドレス)は、ネットワークで使用される論理アドレスです。MACアドレスとは異なり、IPアドレスは変更可能であり、ネットワーク構成に基づいて割り当てられます。
まとめ
- MACアドレス:NICに割り当てられた固定された一意の物理アドレス。
- IPアドレス:NICに割り当てられた変更可能な論理アドレス。
IPおよびMACアドレスを確認するには、次のコマンドを使用します。
ipconfig /all
パブリックIP vs. プライベートIP
IPアドレスを介したデバイスへのアクセス
127.0.0.1
→ ローカルマシンにアクセスします。- プライベートIP → LAN内の他のデバイスにアクセスします。
- パブリックIP → インターネット上の他のデバイスにアクセスします。
パブリックIPアドレス(インターネットIP)
インターネットアクセスを備えた企業ネットワークをセットアップするには、企業はインターネットサービスプロバイダー(ISP)からブロードバンド接続を取得する必要があります。ISPはパブリックIPアドレスを割り当て、企業ネットワーク内のデバイスがインターネットにアクセスできるようにします。
- パブリックIPアドレスは、インターネットNIC(インターネットネットワークインフォメーションセンター)によって割り当ておよび管理されます。
- パブリックIPを持つデバイスには、インターネットから直接アクセスできます。
- パブリックIPは、**広域ネットワーク(WAN)**の一部です。
プライベートIPアドレス(LAN IP)
プライベートIPは、組織またはホームネットワーク内で内部デバイスを接続するために使用されます。これらのアドレスは、インターネット上でルーティングできません。外部ネットワークにアクセスする前に、**NAT(ネットワークアドレス変換)**を使用して変換する必要があります。
- プライベートIPは内部使用のために定義されており、インターネットから直接アクセスできません。
- プライベートIPデバイスがインターネットにアクセスする必要がある場合は、プライベートIPをパブリックIPに変換するNATゲートウェイを経由する必要があります。
パブリックネットワークとプライベートネットワークへのアクセス
プライベートネットワーク(LAN)デバイスが**パブリックネットワーク(インターネット)**にアクセスする必要がある場合は、**SNAT(ソースNAT)**を経由する必要があります。
- パブリックインターネット(ISPによって管理)は、パブリックIPで構成されています。
- プライベートIPはインターネット上でルーティングできません。NATを介して変換されない限り、ブロックされます。
パブリックネットワーク(インターネット)デバイスがプライベートネットワーク(LAN)デバイスにアクセスする必要がある場合は、DNAT(宛先NAT)、VPN、またはポートフォワーディングが必要です。
パブリックインターネットを介した2つのプライベートネットワーク間の通信には、**VPN(仮想プライベートネットワーク)**を使用できます。
内部ネットワーク vs. 外部ネットワーク
- 内部ネットワーク(LAN)は、基本的にプライベートネットワークです。
- 外部ネットワーク(WAN)には、パブリックインターネットとその他のプライベートネットワークの両方を含めることができます。
重要なポイント:
- 「パブリックネットワーク」≠「外部ネットワーク」
- 簡単に言うと、パブリックネットワーク = 外部ネットワーク、プライベートネットワーク = 内部ネットワークですが、技術的には、定義はわずかに異なります。
IPアドレスの完全な範囲
IPアドレスは5つのクラスに分けられ、次の範囲があります。
- クラスA:
1.0.0.1 – 127.255.255.254
- クラスB:
128.0.0.1 – 191.255.255.254
- クラスC:
192.0.0.1 – 223.255.255.254
- クラスD:
224.0.0.0 – 239.255.255.255
(マルチキャスト用に予約) - クラスE:
240.0.0.0 – 255.255.255.255
(将来の使用のために予約)
これらのうち、クラスA、B、およびCは、インターネットで一般的に使用されます。
- クラスDは、マルチキャスト通信に使用されます。
- クラスEは、将来および実験的な目的のために予約されています。
特殊なIPアドレス
0.0.0.0
→ 現在のホストを表します。255.255.255.255
→ 現在のサブネットのブロードキャストアドレス。- クラスE IP(
11110
プレフィックス) → 実験的使用のために予約されています。 - ループバックアドレス(
127.x.x.x
) → ローカルループバックテストのために予約されています(例:Webサーバーテスト用の127.0.0.1
)。 - ネットワークIDは
0
で始めることはできません。0.0.0.0
はローカルネットワークを表すからです。
パブリックIPアドレスの範囲
クラスA、B、およびC内で、特定の範囲がパブリックIPアドレス用に指定されています。
-
クラスAパブリックIP:
1.0.0.0 – 9.255.255.255
11.0.0.0 – 126.255.255.255
-
クラスBパブリックIP:
128.0.0.0 – 172.15.255.255
172.32.0.0 – 191.255.255.255
-
クラスCパブリックIP:
192.0.0.0 – 192.168.255.255
192.169.0.0 – 223.255.255.255
プライベートIPアドレスの範囲
次のIPアドレス範囲は、プライベートネットワーク用に予約されており、インターネット上でルーティングできません。
- クラスAプライベートIP:
10.0.0.0 – 10.255.255.255
(10.0.0.0/8
) - クラスBプライベートIP:
172.16.0.0 – 172.31.255.255
(172.16.0.0/12
) - クラスCプライベートIP:
192.168.0.0 – 192.168.255.255
(192.168.0.0/16
)
これらのアドレスは、インターネット当局によって割り当てられておらず、内部ネットワーク用です。インターネットと直接通信できなくても、**NAT(ネットワークアドレス変換)**を使用すると、プライベートネットワークデバイスがパブリックインターネットにアクセスできます。
プリンター、管理対象スイッチ、スマートデバイスなど、多くの内部ネットワークデバイスも、パブリックIPリソースを節約するためにプライベートIPアドレスを使用しています。
サブネットワークとローカルエリアネットワーク(LAN)
サブネットワーク(サブネット)とは?
サブネットとは、同じ物理ネットワークデバイス(例:スイッチまたはハブ)を共有するコンピューターネットワークのセグメントを指します。同じサブネット内のコンピューターは直接通信できます。
ローカルエリアネットワーク(LAN)とは?
LANは、限られたエリア(例:オフィス、建物、またはホームネットワーク)内の複数の相互接続されたデバイスで構成されるネットワークです。LANには、複数のサブネットを含めることができます。
- LAN内のすべてのデバイスが同じサブネット内にある場合、それらは直接通信できます。
- **LANは、VLAN(仮想ローカルエリアネットワーク)**を使用して複数のサブネットに分割できます。
デバイスは同じサブネット内でのみ通信できます
同じサブネット内のデバイスは、直接相互に通信できます。2つのデバイスが異なるサブネットにある場合、ルーターを介して通信する必要があります。
2つのIPが同じサブネットに属しているかどうかを判断する方法
2つのIPアドレスが同じサブネットに属しているかどうかを確認するには、サブネットマスクを使用します。
- IPアドレスとサブネットマスクをバイナリに変換します。
- 両方の値に対してビット単位のAND演算を実行します。
- 結果を比較します。一致する場合、2つのIPは同じサブネット内にあります。
例1
前提条件:
- IPアドレス1:
192.168.1.1
- サブネットマスク:
255.255.255.0
- IPアドレス2:
192.168.1.2
- サブネットマスク:
255.255.255.0
分析:
両方のアドレスは192.168.1.0サブネットに属しているため、同じサブネット内にあります。
例2
前提条件:
- IPアドレス1:
192.168.1.1
- サブネットマスク:
255.255.255.0
- IPアドレス2:
192.168.1.2
- サブネットマスク:
255.255.0.0
分析:
一見すると、2つのIPは似ています。ただし、
255.255.255.0
の192.168.1.1
は192.168.1.0/24に属します。255.255.0.0
の192.168.1.2
は192.168.0.0/16に属します。
サブネットIDが異なるため、同じサブネット内にはありません。
例3
前提条件:
- IPアドレス1:
192.168.1.1
- サブネットマスク:
255.255.252.0
- IPアドレス2:
192.168.2.1
- サブネットマスク:
255.255.252.0
分析:
- 例1とは異なり、ここのサブネットマスクは
255.255.255.0
ではなく255.255.252.0です。 - 192.168.1.1と192.168.2.1は両方とも192.168.0.0/22に属します。
同じサブネット範囲内にあるため、同じサブネット内にあります。
最終的な考え
localhost、127.0.0.1
、ローカルIP、およびパブリック/プライベートIPを理解することは、ネットワークとシステム管理にとって重要です。重要なポイントは次のとおりです。
localhost
はドメイン名です(デフォルトは127.0.0.1
)。127.0.0.1
はループバックアドレスであり、ローカルテストに使用されます。- ローカルIPは外部アクセスを許可しますが、
127.0.0.1
とlocalhost
は許可しません。 - パブリックIPはインターネット上でルーティング可能ですが、プライベートIPは内部ネットワーク内で使用されます。
- サブネットマスクは、2つのIPが同じサブネットに属しているかどうかを判断します。
- 異なるサブネット間で通信するには、ルーターが必要です。
これらの基本を理解することで、ネットワーク環境を効率的にトラブルシューティングおよび構成できます。
Leapcellは、バックエンドプロジェクトをホストするための第一の選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedisのための次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い — リクエストも料金もありません。
圧倒的なコスト効率
- アイドル料金なしの従量課金制。
- 例:25ドルで、平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- アクションにつながる洞察のためのリアルタイムメトリックとロギング。
簡単なスケーラビリティと高いパフォーマンス
- 高い同時実行性を容易に処理するための自動スケーリング。
- 運用オーバーヘッドゼロ — 構築に集中するだけです。
ドキュメントで詳細をご覧ください!
Xでフォローしてください:@LeapcellHQ