linux上找到可用的網絡接口
VSole2022-03-27 06:36:05
在 Linux 中查找可用的網絡接口
我們可以通過幾種方式找到可用的網卡。在本指南中,我們將討論列出 Linux 中網絡接口卡的 10 種方法。
1. 使用 ifconfig 命令列出網絡接口
使用ifconfig命令查找網絡接口詳細信息的最常用方法。我相信一些 Linux 用戶可能仍在使用它。$ ifconfig -a enp5s0: flags=4098 mtu 1500 ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 11 netmask 20 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 171420 bytes 303980988 (28 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 171420 bytes 303980988 (28 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlp9s0: flags=4163 mtu 1500 inet 11237 netmask 2220 broadcast 112255 inet6 2409:4072:6183:c604:c218:85ff:fe50:474f prefixlen 64 scopeid 0x0 inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20 ether c0:18:85:50:47:4f txqueuelen 1000 (Ethernet) RX packets 564574 bytes 628671925 (55 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 299706 bytes 60535732 (7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
正如你在上面的輸出中看到的,我的 Linux 機器enp5s0上有兩個網絡接口,即(板載有線以太網適配器)和wlp9s0(無線網絡適配器)。這里lo是環回接口,用于在本地訪問所有網絡服務。它有一個 IP 地址127.0.0.1。
我們還可以ifconfig在許多 UNIX 變體(例如FreeBSD)中使用相同的命令來列出可用的網卡。
2. 使用 ip 命令列出網絡接口
該ifconfig命令在最新的 Linux 版本中已棄用。因此,你可以使用ip命令顯示網絡接口,如下所示。
ip link show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: `enp5s0`: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 24:b6:fd:37:8b:29 brd ff:ff:ff:ff:ff:ff 3: `wlp9s0`: mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether c0:18:85:50:47:4f brd ff:ff:ff:ff:ff:ff
你也可以使用以下命令。
ip addr ip -s link
你是否注意到這些命令還顯示了網絡接口的連接狀態?如果你仔細看上面的輸出,你會注意到我的以太網卡沒有連接網線(見上面輸出中的DOWN字樣)。并連接無線網卡(見UP字樣)
這兩個命令 (ifconfig和ip) 足以在你的 Linux 系統上找到可用的網卡。
但是,在 Linux 上列出網絡接口的方法很少。
3. 使用 /sys/class/net/ 目錄列出網絡接口
Linux 內核將網絡接口詳細信息保存在/sys/class/net 目錄中。你可以通過查看此目錄來驗證可用接口的列表。ls /sys/class/net enp5s0 lo virbr0 wlp9s0
4. 使用 /proc/net/dev 文件列出網絡接口
在 Linux 操作系統中,/proc/net/dev文件包含有關網絡接口的統計信息。要查看可用的網卡,只需使用命令查看其內容:
cat /proc/net/dev
5. 使用 netstat 命令列出網絡接口
該netstat命令顯示各種詳細信息,例如網絡連接、路由表、接口統計信息、偽裝連接和多播成員資格。netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enp5s0 1500 0 0 0 0 0 0 0 0 BMU lo 65536 30 0 0 0 30 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 BMU wlp9s0 1500 402063 0 0 0 165361 0 0 0 BMRU
請注意netstat 已過時。的替代品"netstat -i"是"ip -s link"。另請注意,此方法將僅列出活動接口,而不是所有可用接口。
6. 使用 nmcli 命令列出網絡接口
該nmcli是用于控制NetworkManager和報告網絡狀態的命令行工具。它用于創建、顯示、編輯、刪除、激活和停用網絡連接以及顯示網絡狀態。如果你有安裝了網絡管理器的 Linux 系統,你可以使用 nmcli 工具使用以下命令列出可用的網絡接口:
nmcli device status DEVICE TYPE STATE CONNECTION wlp9s0 wifi connected JioFi4_12E9FE virbr0 bridge connected (externally) virbr0 p2p-dev-wlp9s0 wifi-p2p disconnected -- enp5s0 ethernet unavailable -- lo loopback unmanaged --
你還可以使用此命令顯示 Linux 系統中的網絡接口:
$ nmcli connection show
大多數上述應用程序都預裝在大多數 Linux 和 Unix 系統中。還有一些外部應用程序可用于顯示網卡列表。
7. 使用 hwinfo 顯示網絡接口列表
Hwinfo 是一個命令行應用程序,用于查看 Linux 系統中的硬件信息。它探測 Linux 系統中存在的硬件并顯示每個硬件設備的詳細信息。Hwinfo 可在許多 Linux 發行版的官方存儲庫中找到。要在基于 RPM 的系統上安裝 hwinfo,請運行:
$ sudo dnf install hwinfo
在基于 Deb 的系統上,你可以使用以下命令安裝 hwinfo:
$ sudo apt install hwinfo
安裝后,運行以下命令以使用 hwinfo 應用程序列出網絡接口的名稱:
sudo hwinfo --short --network network interface: enp5s0 Ethernet network interface virbr0 Ethernet network interface wlp9s0 Ethernet network interface lo Loopback network interface
8. 使用 lshw 顯示網絡接口
Lshw (Hardware Lister) 是一個 CLI 應用程序,可提供 Linux 系統硬件配置的詳細信息。要使用 lshw 應用程序顯示 Linux 中的網卡列表,請運行:
sudo lshw -class network -short H/W path Device Class Description /0/100/1c.1/0 enp5s0 network RTL810xE PCI Express Fast Ethernet controller /0/100/1c.3/0 wlp9s0 network AR9285 Wireless Network Adapter (PCI-Express)
9.使用inxi查看網絡接口
Inxi 是另一個命令行系統信息工具,如 hwinfo 和 lshw。它顯示系統硬件、CPU、驅動程序、Xorg、桌面、內核、GCC 版本、進程、RAM 使用情況以及各種其他有用信息。要顯示有關網卡的信息,包括 Linux 系統中的供應商、網卡驅動程序和可用網絡接口的數量,請使用以下-N選項運行 inix :$ inxi -N Network: Device-1: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169 Device-2: Qualcomm Atheros AR9285 Wireless Network Adapter driver: ath9k
10. 使用 lspci 顯示網絡接口
該lspci命令列出 Linux 系統中的所有 PCI 設備。要查看 Linux 系統中可用的網絡接口列表,請使用lspci和egrep命令,如下所示:
lspci | egrep -i 'network|ethernet|wireless|wi-fi' 05:0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 05) 09:0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
僅列出可用網絡接口的名稱
到目前為止,我們看到的是在 Linux 中查找可用網絡接口的各種方法。在上述所有方法中,我們顯示了可用的網絡接口以及一些其他詳細信息,例如 RX/TX 詳細信息、Mac 地址、連接狀態、模式、網絡類型等等。如果要去除不必要的詳細信息并僅列出網絡接口的名稱,可以使用以下命令之一。
ifconfig -a | sed 's/[ \\t].*//;/^$/d' enp5s0: lo: virbr0: wlp9s0:
要從輸出中排除環回設備 (lo),請改為運行以下命令:
$ ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'
如前所述,ifconfig不推薦使用命令。如果ifconfig命令不可用,請使用ip命令僅顯示帶有-o如下標志的網絡接口的名稱:
$ ip -o link show | awk -F': ' '{print $2}'
lo
enp5s0
wlp9s0
virbr0
你也可以使用以下命令:
$ ip addr show | awk '/^[1-9]/ {print $2}'
VSole
網絡安全專家