是否有任何 Linux 命令可用于显示除 ifconfig 之外的所有网络接口

是否有任何 Linux 命令可用于显示除 ifconfig 之外的所有网络接口

我需要在 Arch Linux 安装(在 Virtualbox 中)上设置网络连接,并且需要知道我正在使用哪些网络接口。如何在不使用的情况下执行此操作ifconfig

答案1

ifconfig工具(来自net-tools)已被弃用,取而代之的ip是作为iproute2套件一部分的工具。

这将列出接口及其 IP 地址(如果有):

ip addr

答案2

Linux.com 网站有以下文章更换是否配置命令知识产权

大多数人学习 ifconfig 命令时学到的第一件事就是如何找出已分配给接口的 IP 地址。这通常使用 ifconfig 命令完成,无需任何标志或参数。要使用 ip 命令执行相同操作,请按如下方式运行:

知识产权

此命令将列出所有接口及其相关信息(上图 1)。

假设您只想查看 IPv4 信息(为了清楚起见)。为此,请发出以下命令:

ip-4a

或者,如果您只想查看 IPv6 信息:

ip-6a

如果您只想查看有关特定接口的信息怎么办?您可以使用以下命令列出无线连接的信息:

ip a 显示 wlan0

您甚至可以使用此命令获取更具体的信息。如果您只想查看 wlan0 接口上的 IPv4,请发出以下命令:

ip -4 a 显示 wlan0

您甚至可以使用以下命令仅列出正在运行的接口:

ip link ls 启动

答案3

还有另一种选择:使用内核提供的目录(sysfs)。

ls /sys/class/net/

这样就很容易写:

for interface in $(ls /sys/class/net/) ; do
   echo $interface
   # ...
done

请注意,子目录可以提供有关链路级别方面的一些信息(例如以太网 MAC 地址),但不能提供有关 IP 地址等方面的信息。

如果有人想知道那里可以找到什么,这里是文档: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net

答案4

您还可以使用网络管理器 GUI 的命令行,使用命令列出可用的接口、其类型、连接状态和一般连接“名称”

nmcli dev status

或者你可以继续

nmcli dev show

这将产生类似于 Windows 命令的结果ipconfig /all

acejavelin@BlazingIcicle ~ $ nmcli dev show
GENERAL.DEVICE:enp2s0
GENERAL.TYPE:以太网
GENERAL.HWADDR:F8:32:E4:BD:00:00
GENERAL.MTU:1500
GENERAL.STATE:100(已连接)
GENERAL.CONNECTION:有线连接 1
GENERAL.CON-PATH:/org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.CARRIER:on
IP4.ADDRESS[1]:192.168.1.188/24
IP4.GATEWAY:192.168.1.1
IP4.ROUTE[1]:dst = 169.254.0.0/16,nh = 0.0.0.0,mt = 1000
IP4.DNS[1]: 208.67.220.220
IP4.DNS[2]: 208.67.222.222
IP4.DNS[3]: 192.168.1.1
IP6.地址[1]: fe80::36f1:930b:48a:ab0e/64
IP6.网关:

GENERAL.DEVICE:lo
GENERAL.TYPE:环回
GENERAL.HWADDR:00:00:00:00:00:00
GENERAL.MTU:65536
GENERAL.STATE:10(未托管)
GENERAL.CONNECTION:--
GENERAL.CON-PATH:--
IP4.ADDRESS[1]:127.0.0.1/8
IP4.GATEWAY:
IP6.ADDRESS[1]:::1/128
IP6.GATEWAY:
acejavelin@BlazingIcicle ~ $

这也可以针对特定界面进一步完善

nmcli dev show eth0或者nmcli dev show wl0

我还发现使用别名ipconfig实际上nmcli dev show在我使用的几台计算机上很有用。

相关内容