OS Xで動作するように127.0.0.1以外のループバックアドレスを取得する方法


55

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

ただし、私のMacでは、127.0.0.1にしかpingできません

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

回答:


72

ここに短い答えがあります: 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のみを使用して実装されますが、このブロック内のアドレスはどこのネットワークにも表示されません。


4
唯一のそれは127のために働くようにする方法があった場合* * *。。。
マシューSchinckel

これがCentOSでも動作することが判明した場合、あなたは私から賞金を得ています。
パルティアショット14

実際、どちらの方法でも賞金がもらえます。CentOSでは機能しないので、答えを見つけたらその質問に答えます。
パルティアショット14


12

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

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

私はこれを間違って読んでいますか?作成したものは、127.0.0.1から127.0.0.255までのすべてのアドレスを実行するように見えます。「sudo ifconfig lo0 alias 127.0.0。$ i up」を「sudo ifconfig lo0 alias 127. $ i。$ i。$ i up」に変更すると、ほとんどが正しくなりますか?ただし、2より小さい値はスキップします。他の2つのオクテットに異なる変数を使用することはできますか?ループバックの最大IPアドレスは127.255.255.255
エベレット

1
@Everett、これを正しく読むと、アドレス127.0.0。*のみが実行されます。範囲全体をカバーしなかった理由は、255個のアドレスを処理するのも実際には非常に遅いため、255x255x255では時間がかかりすぎるからです。
ローレント

1
ありがとう。誰かがここに来て「ねえ、127.7.53.91では機能しませんでした」と言うので、期待が設定されていることを確認したかっただけです。私はそれをしないだろう、誰かが意志...
エヴェレット

2
実際には、@ Everettの提案は、127.7.7.7または127.42.42.42などのアドレスのみを有効にするため、機能しません。つまり、最後の3桁が等しいアドレスです。127/8ブロック内のすべてのIPを実際に有効にするには、3つの異なるループが必要です。しかし、これを行うことは確かに良い考えではありません。各IPを個別に有効にする必要があり、割り当てられた各IPにいくつかのリソースが接続されていることを考えると、非常に可能性が高いです。(256 ^ 3である)は約17.7百万人のIPアドレスを割り当てることは、いくつかの重大な結果...持っていると判明するかもしれない
jwatkins

2
@jwatkins結論:必要な場合にのみ有効にしてください。これはすべての経験則です。
ウィリアムTフログガード16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.