ローカルループバックアドレス「127.0.0.1」「::1」「localhost」とは?Tech TIPS

「127.0.0.1」「::1」はローカルループバックアドレスと呼ばれ、自分自身を指す特別なIPアドレスである。「localhost」という名前でも参照できる。自分自身の上で動作しているサービスへ接続する場合は、これらのIPアドレスを利用できる。

» 2022年10月26日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

ローカルループバックアドレス「127.0.0.1」「::1」「localhost」とは?

 TCP/IPネットワークでは、自ホストを表すための「ローカルループバックアドレス」(もしくは単に「ループバックアドレス」)という特別なIPアドレスが利用されることがある。本Tech TIPSでは、これについてWindows OSおよびWindowsネットワークを前提として簡単に解説する。

 Windowsネットワークに登場する他のIPアドレスについては、連載「基礎から学ぶWindowsネットワーク」の「3.さまざまなIPアドレス」が参考になるだろう。

ローカルループバックアドレスとは?

 ローカルループバックアドレスとは、自分自身を表す特別なIPアドレスの1つであり、TCP/IPが有効なコンピュータでは常に利用可能なIPアドレスである。一般的には以下のIPアドレスが利用される。

  • IPv4の場合: 127.0.0.1
  • IPv6の場合: ::1(0000:0000:0000:0000:0000:0000:0000:0001)

 IPv4の場合、IPアドレスの最上位のバイト(最上位の8bit)の内容が「127」でありさえすればよいので、「127.0.0.1〜127.255.255.254」の範囲内ならばどのIPアドレスでも利用できる(「127.0.0.0」と「127.255.255.255」の2つはブロードキャストアドレスのため除外される)。例えば「127.0.0.2」でもよいし、「127.1.2.3」でもよい。ただし、一般的な用途では「127.0.0.1」だけが利用される。

ローカルループバックアドレス「127.0.0.1」「::1」の確認方法

 TCP/IPネットワークが有効になっていると、「127.0.0.1」「::1」は必ず定義されているはずである。Windows OSではTCP/IPは必ず組み込まれており、またIPv4はもとよりIPv6も有効である。そのため、デフォルトでは「127.0.0.1」「::1」ともに必ず利用できるはずだ。

 例えば、pingコマンドをこれらのIPアドレス宛てに実行すると、以下のように応答が返ってくる(pingコマンドの使い方はTech TIPS「「pingでネットワークトラブルの原因を調査する」参照)。

ping 127.0.0.1 ……IPv4のローカルループバックアドレス宛てのping
ping ::1 ……IPv6のローカルループバックアドレス宛てのping



IPv4のローカルループバックアドレス「127.0.0.1」にpingを送信 IPv4のローカルループバックアドレス「127.0.0.1」にpingを送信

IPv6のローカルループバックアドレス「::1」にpingを送信 IPv6のローカルループバックアドレス「::1」にpingを送信

 ネットワークインタフェースに割り当てられているIPアドレスと違い、「127.0.0.1」「::1」は、ipconfigコマンドや、[設定]アプリの[ネットワークとインターネット]、コントロールパネルの[ネットワークとインターネット]−[ネットワーク接続]などで確認できない。

 そこで「netstat」コマンドを以下のように実行すると、このIPアドレスでリッスンしているいくつかのポートが(デフォルトでは)存在するので、それで確認できる。

netstat -an ……リッスンしているポートの表示



「netstat」コマンドで「127.0.0.1」「::1」のリッスンを確認する 「netstat」コマンドで「127.0.0.1」「::1」のリッスンを確認する

「127.0.0.1」「::1」の利用方法

 「127.0.0.1」「::1」は、自分自身を指すIPアドレスである。そのため、自分自身のサービスが動作しているかどうかを確認したり、自分自身のコンピュータ上で動作しているサービスへ接続したりする場合に利用できる。先の例のように、pingで接続したり、ファイル共有へ接続したり、Webサーバが動作しているならWebブラウザで接続したり、といった使い方をする。

 外部のコンピュータから接続する場合と違って、自分自身に割り当てられているIPアドレスを知っている必要はなく、常に「127.0.0.1」や「::1」というIPアドレスに接続すればよい。これにより、常に自分自身へ接続することが保証されている。

 ただし、このような使い方が可能になるためには、対象のアプリケーションが「127.0.0.1」「::1」(もしくは任意のアドレスを表す「0.0.0.0」「::」)に対してリッスンしている必要がある。

 前述の「netstat -an」コマンドの実行例でいえば、「ローカルアドレス」列がTCPの「0.0.0.0:445」や「127.0.0.1:843」であるポートには、「127.0.0.1」を宛先に指定して接続できる。同様に「[::]:49671」「[::1]:49670」には「::1」宛てで接続可能だ。一方、「172.16.80.146:139」のポートに対しては、「127.0.0.1」宛てでは接続できない。

「127.0.0.1」「::1」でリッスンする

 一般的には、どのポートがローカルループバックアドレス経由で接続できるかは気にする必要はない。ただし、Windows OS上で稼働するWebサーバやファイアウォールなどを設定する場合には、意識しておく必要があるだろう。

 例えば以下のように設定されたWebサーバ(Windows OSのIIS)では、ローカルコンピュータ上のWebブラウザから、「http://127.0.0.1/」を指定しても、接続できずにエラーとなる。IISが「127.0.0.1」でリッスンしていないからだ。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。