Linuxのループバックアダプター名
-
06-07-2019 - |
質問
Linuxシステムのループバックネットワークアダプターは常に「lo」と呼ばれると想定しても安全ですか?
解決
lo
以外のループバックインターフェイスを備えたLinuxシステムは知りません。システム固有のスクリプトを作成する場合はこの命名規則に依存しますが、移植可能なプログラムを作成する場合はそうではありません。たとえば、OSXのループバックは lo0
です。
Cでの信頼できる方法は、ソケットで SIOCGIFCONF
ioctl
を呼び出し、インターフェイスを反復処理し、 SIOCGIFFLAGS
ioctl
、および IFF_LOOPBACK
フラグが設定されているインターフェイスを確認します( /usr/include/linux/if.h
を参照)。
SIOCGIFCONF
はインターフェイス名も提供します。
他のヒント
私の経験では、これは一般的な名前ですが、常にそうであるとは限りません。インターフェースを列挙して、アドレス127.0.0.1のインターフェースを探すのがよいでしょうか?
これはかなり古い慣習です。実際、「lo」と呼ばないLinuxボックス/ディストリビューションはまだ見ていません。
ただし、* nixシステムのデバイス名は非常に多様であるため、変更される可能性があります。移植性が必要な場合は、標準を使用してください(この場合、127.0.0.1)。
インターフェイスは任意の名前に変更できますが、ループバックインターフェイスの名前を変更する人は非常に愚かで、動作しないシステムが必要です:
はい、インターフェイスを列挙して名前を取得できます。しかし、おそらく「lo」になると仮定するのも同じくらい簡単です。
127.0.0.1を使用するのがおそらくフェールセーフな方法です。
RFC3330 は、 127.0.0.0/8
が常にループバックサブネット。
ただし、Windowsでは c:\ windows \ system32 \ drivers \ etc \ hosts
で定義され、 / etc / hosts <ではLinux / code>は単なる慣例です。さらに、
lo
という名前は、Linuxのlocalhost インターフェースに与えられる一般的な名前です。
絶対に確実にする必要がある場合は、 127.0.0.1
を使用します。