ローカルループバックアドレス「127.0.0.1」「::1」「localhost」とは?:Tech TIPS
「127.0.0.1」「::1」はローカルループバックアドレスと呼ばれ、自分自身を指す特別なIPアドレスである。「localhost」という名前でも参照できる。自分自身の上で動作しているサービスへ接続する場合は、これらのIPアドレスを利用できる。
≡目次
※会員登録(無料)をすると、🔒の付いているセクションを読むことができます。
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
ネットワークインタフェースに割り当てられているIPアドレスと違い、「127.0.0.1」「::1」は、ipconfigコマンドや、[設定]アプリの[ネットワークとインターネット]、コントロールパネルの[ネットワークとインターネット]−[ネットワーク接続]などで確認できない。
そこで「netstat」コマンドを以下のように実行すると、このIPアドレスでリッスンしているいくつかのポートが(デフォルトでは)存在するので、それで確認できる。
netstat -an ……リッスンしているポートの表示
「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.