首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux:获取“用户友好”网络接口名称。

Linux:获取“用户友好”网络接口名称。
EN

Stack Overflow用户
提问于 2020-01-08 11:00:35
回答 2查看 1.2K关注 0票数 1

我正在编写一个程序,用户将在Linux下选择一些网络接口,如下所示:

代码语言:javascript
复制
Please select a network card:
1)  enp2s0
2)  wlan3
3)  ppp2

到目前为止,我没有任何问题。

但是,我希望用户看到更多的“描述性”名称,如下所示:

代码语言:javascript
复制
Please select a network card:
1)  PCI Ethernet (enp2s0)
2)  Wireless LAN (wlan3)
3)  Dial-up connection (ppp2)

问题:

  • Linux知道网络接口的这种描述性名称吗?
  • 如果是,我怎样才能得到这些名字?
  • 如果不是:是否有一种方法可以从界面名称中猜出用户友好的名称,并具有相当高的可靠性? 例如:"ppp*“=>”拨号连接“;”w*“=>无线网络” 也许与/sys/class/net/.../type的代码结合在一起
  • 如果是:在哪里可以找到可能的接口名称列表?

我知道Gnome桌面在网络状态下拉菜单中列出了"PCI以太网“之类的网络接口名称。因此,必须有某种方法来获取某个网络接口的“描述性”名称。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-08 12:53:00

Linux是否知道网络接口的“友好”名称?

不是的。

如果不是:是否有一种方法可以从界面名称中猜出用户友好的名称,并具有相当高的可靠性?

您可能可以进行您建议的概括。如果您是基于systemd的系统,请查看systemd网络命名方案,它显示了用于不同接口类型的前缀:

代码语言:javascript
复制
+--------+------------------------------------+
| Prefix |            Description             |
+--------+------------------------------------+
| en     | Ethernet                           |
| ib     | InfiniBand                         |
| sl     | serial line IP (slip)              |
| wl     | Wireless local area network (WLAN) |
| ww     | Wireless wide area network (WWAN   |
+--------+------------------------------------+

可能与/sys/class/net/./type中的代码结合使用?

我不确定type信息是否会有帮助。例如,以太网和无线接口都显示type of 1。另一方面,您可以肯定地识别ppp接口,例如,使用此值。

type的可能值在if_arp.h中可用。

票数 1
EN

Stack Overflow用户

发布于 2020-01-08 12:23:47

这些是本机命名策略系统使用的。旧的命名(eth0,wlan0,.)接口名是不可预测的(例如,您的第一个eth卡可以获得eth0以外的名称),这会导致各种问题。新的命名标准根据以下之一为接口指定名称:

  1. 包含固件/BIOS的名称为板上设备提供了索引号(例如: eno1)
  2. 包含固件/BIOS的名称提供了PCI热插拔插槽索引号(例如: ens1)
  3. 包含硬件连接器物理/地理位置的名称(例如: enp2s0)
  4. 包含接口MAC地址的名称(例如: enx78e7d1ea46da)
  5. 经典的、不可预测的内核-本机ethX命名(例如: eth0)

系统将从1开始,下降到2,3,.

来源

编辑:

我应该补充一下,如果你读了我发布的链接,你可以用你自己的名字!

您可以创建自己的手动命名方案,例如将接口命名为"internet0“、"dmz0”或"lan0“。为此,在/etc/systemd/ .link /中创建自己的文件,为其中一个、部分或所有接口选择显式名称或更好的命名方案。有关更多信息,请参见systemd.link(5)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59644381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档