web-dev-qa-db-ja.com

OS Xで127.0.0.1以外のループバックアドレスを機能させるには

私が読んだすべてによれば、127.x.x.xサブネット全体がループバックするはずです。

ただし、私のMacでは、127.0.0.1に対してのみpingを実行できます。

私はこれを以前に(おそらく別のOSで)行ったことがあることを知っており、ローカルで複数のSSLサイトを開発したり、ローカルIPにアクセスするためにリモートサービスをトンネリングしたりするのに非常に便利です(たとえば、MySQLサーバーにsshで接続できます)。ローカルサーバーが127.0.0.1で実行されている間に、標準ポートをローカルマシン上の127.0.0.2の同じポートにポート転送するだけです。

58

これが短い答えです:Sudo ifconfig lo0 alias 127.0.0.* up

各エイリアスは個別に追加する必要があります(Sudo ifconfig lo0 alias 127.0.0.2 upSudo ifconfig lo0 alias 127.0.0.3 up)。テストのために手動で行うことも、そのサブネット内の他の250の使用可能な番号のサブセットまたは完全なリストを、起動時に自動的に実行するStartupItemsスクリプトにすることもできます。

長い答え:RFC3330によると、127.0.0.0/8-このブロックは、インターネットホストのループバックアドレスとして使用するために割り当てられます。上位レベルのプロトコルによってこのブロック内の任意のアドレスに送信されたデータグラムは、ホスト内でループバックする必要があります。これは通常、ループバックに127.0.0.1/32のみを使用して実装されますが、このブロック内のアドレスはどこのネットワークにも表示されません。

78
Everett

興味のある方のために、IP 127.0.0。*のすべてのエイリアスを追加する小さなbashスクリプトを次に示します。

#!/bin/bash
for ((i=2;i<256;i++))
do
    Sudo ifconfig lo0 alias 127.0.0.$i up
done
13
laurent