代码之家  ›  专栏  ›  技术社区  ›  codebox

Linux中的环回适配器名称

  •  3
  • codebox  · 技术社区  · 16 年前

    假设Linux系统上的环回网络适配器总是被称为“lo”是安全的吗?这只是一种可能不遵守的命名约定,还是必须始终遵守?

    6 回复  |  直到 16 年前
        1
  •  8
  •   Alex B    16 年前

    我不知道任何Linux系统除了 lo . 如果我编写一个特定于系统的脚本,而不是编写一个可移植程序,那么我将依赖于这种命名约定。例如,OSX中的环回是 lo0 .

    在C语言中,一种可靠的方法是调用 SIOCGIFCONF ioctl 在套接字上,迭代接口,调用 SIOCGIFFLAGS IOCTL 并检查哪些接口具有 IFF_LOOPBACK 标志集(见) /usr/include/linux/if.h )

    西奥吉夫康夫 还将为您提供接口名称。

        2
  •  1
  •   ZombieSheep    16 年前

    根据我的经验,这是一个共同的名字,尽管你不应该总是相信它是这样的。也许枚举接口并查找地址为127.0.0.1的接口是可行的方法?

        3
  •  1
  •   György Andrasek    16 年前

    这是一个相当古老的惯例,事实上,我还没有见过一个Linux设备/发行版,它没有被称为“lo”。

    然而,*nix系统中的设备名称非常多样,可以假设它们会发生变化。如果需要可移植性,请使用这些标准(在本例中为127.0.0.1)。

        4
  •  1
  •   MarkR    16 年前

    接口可以重命名为您想要的任何东西-但是重命名环回接口的任何人都是非常愚蠢的,应该有一个非工作系统:)

    是的,您可以枚举接口,并获取它们的名称。但也许仅仅假设它将是“Lo”也很容易。

        5
  •  0
  •   user59634    16 年前

    使用127.0.0.1可能是故障保护的方法。

        6
  •  -1
  •   Matt Joiner    16 年前

    RFC3330 定义 127.0.0.0/8 始终是环回子网。

    使用 localhost 但是,在Windows中定义 c:\windows\system32\drivers\etc\hosts Linux在 /etc/hosts 纯粹是惯例。而且名字 lo 是本地主机的典型名称 界面 在Linux。

    如果你必须绝对确定,使用 127.0.0.1 .