歡迎光臨
每天分享高質量文章

如何在 Linux 中查看可用的網絡接口 | Linux 中國

對於某些人來說,他們更偏愛在安裝完系統後再進行網絡的配置或者更改現存的設置。眾所周知,為了在命令列中進行網絡設定的配置,我們首先必須知道系統中有多少個可用的網絡接口。

— Sk

 

在我們安裝完一個 Linux 系統後最為常見的任務便是網絡配置了。當然,你可以在安裝系統時進行網絡接口的配置。但是,對於某些人來說,他們更偏愛在安裝完系統後再進行網絡的配置或者更改現存的設置。眾所周知,為了在命令列中進行網絡設定的配置,我們首先必須知道系統中有多少個可用的網絡接口。本次這個簡單的指南將列出所有可能的方式來在 Linux 和 Unix 操作系統中找到可用的網絡接口。

在 Linux 中找到可用的網絡接口

我們可以使用下麵的這些方法來找到可用的網絡接口。

方法 1 使用 ifconfig 命令

使用 ifconfig 命令來查看網絡接口仍然是最常使用的方法。我相信還有很多 Linux 用戶仍然使用這個方法。

  1. $ ifconfig -a

示例輸出:

  1. enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500
  2. ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Ethernet)
  3. RX packets 0 bytes 0 (0.0 B)
  4. RX errors 0 dropped 0 overruns 0 frame 0
  5. TX packets 0 bytes 0 (0.0 B)
  6. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  7. lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
  8. inet 127.0.0.1 netmask 255.0.0.0
  9. inet6 ::1 prefixlen 128 scopeid 0x10<host>
  10. loop txqueuelen 1000 (Local Loopback)
  11. RX packets 171420 bytes 303980988 (289.8 MiB)
  12. RX errors 0 dropped 0 overruns 0 frame 0
  13. TX packets 171420 bytes 303980988 (289.8 MiB)
  14. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  15. wlp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  16. inet 192.168.225.37 netmask 255.255.255.0 broadcast 192.168.225.255
  17. inet6 2409:4072:6183:c604:c218:85ff:fe50:474f prefixlen 64 scopeid 0x0<global>
  18. inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20<link>
  19. ether c0:18:85:50:47:4f txqueuelen 1000 (Ethernet)
  20. RX packets 564574 bytes 628671925 (599.5 MiB)
  21. RX errors 0 dropped 0 overruns 0 frame 0
  22. TX packets 299706 bytes 60535732 (57.7 MiB)
  23. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

如上面的輸出所示,在我的 Linux 機器上有兩個網絡接口,它們分別叫做 enp5s0(主板上的有線網卡)和 wlp9s0(無線網卡)。其中的 lo 是環回網卡,被用來訪問本地的網絡的服務,通常它的 IP 地址為 127.0.0.1

我們也可以在許多 UNIX 變種例如 FreeBSD 中使用相同的 ifconfig 來列出可用的網卡。

方法 2 使用 ip 命令

在最新的 Linux 版本中, ifconfig 命令已經被棄用了。你可以使用 ip 命令來羅列出網絡接口,正如下麵這樣:

  1. $ ip link show

示例輸出:

  1. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
  2. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  3. 2: enp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
  4. link/ether 24:b6:fd:37:8b:29 brd ff:ff:ff:ff:ff:ff
  5. 3: wlp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
  6. link/ether c0:18:85:50:47:4f brd ff:ff:ff:ff:ff:ff

你也可以使用下麵的命令來查看。

  1. $ ip addr
  1. $ ip -s link

你註意到了嗎?這些命令同時還顯示出了已經連接的網絡接口的狀態。假如你仔細查看上面的輸出,你將註意到我的有線網卡並沒有跟網絡線纜連接(從上面輸出中的 DOWN 可以看出)。另外,我的無線網卡已經連接了(從上面輸出中的 UP 可以看出)。想知曉更多的細節,可以查看我們先前的指南 在 Linux 中查看網絡接口的已連接狀態[1]

這兩個命令(ifconfig 和 ip)已經足夠在你的 LInux 系統中查看可用的網卡了。

然而,仍然有其他方法來列出 Linux 中的網絡接口,下麵我們接著看。

方法 3 使用 /sys/class/net 目錄

Linux 內核將網絡接口的詳細信息儲存在 /sys/class/net 目錄中,你可以通過查看這個目錄的內容來檢驗可用接口的串列是否和前面的結果相符。

  1. $ ls /sys/class/net

示例輸出:

  1. enp5s0 lo wlp9s0

方法 4 使用 /proc/net/dev 目錄

在 Linux 操作系統中,檔案 /proc/net/dev 中包含有關網絡接口的信息。

要查看可用的網卡,只需使用下麵的命令來查看上面檔案的內容:

  1. $ cat /proc/net/dev

示例輸出:

  1. Inter-| Receive | Transmit
  2. face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
  3. wlp9s0: 629189631 566078 0 0 0 0 0 0 60822472 300922 0 0 0 0 0 0
  4. enp5s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  5. lo: 303980988 171420 0 0 0 0 0 0 303980988 171420 0 0 0 0 0 0

方法 5 使用 netstat 命令

netstat 命令可以列出各種不同的信息,例如網絡連接、路由表、接口統計信息、偽裝連接和多播成員等。

  1. $ netstat -i

示例輸出:

  1. Kernel Interface table
  2. Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
  3. lo 65536 171420 0 0 0 171420 0 0 0 LRU
  4. wlp9s0 1500 565625 0 0 0 300543 0 0 0 BMRU

請註意 netstat 被棄用了, netstat -i 的替代命令是 ip -s link。另外需要註意的是這個方法將只列出激活的接口,而不是所有可用的接口。

方法 6 使用 nmcli 命令

nmcli 是一個用來控制 NetworkManager 和報告網絡狀態的命令列工具。它可以被用來創建、展示、編輯、刪除、激活、停用網絡連接和展示網絡狀態。

假如你的 Linux 系統中安裝了 NetworkManager,你便可以使用下麵的命令來使用 nmcli 列出可以的網絡接口:

  1. $ nmcli device status

或者

  1. $ nmcli connection show

現在你知道瞭如何在 Linux 中找到可用網絡接口的方法,接下來,請查看下麵的指南來知曉如何在 Linux 中配置 IP 地址吧。

◈ 如何在 Linux 和 Unix 中配置靜態 IP 地址[2]
◈ 如何在 Ubuntu 18.04 LTS 中配置 IP 地址[3]
◈ 如何在 Arch Linux 中配置靜態和動態 IP 地址[4]
◈ 如何在 Linux 中為單個網卡分配多個 IP 地址[5]

假如你知道其他快捷的方法來在 Linux 中找到可用的網絡接口,請在下麵的評論部分中分享出來,我將檢查你們的評論並更新這篇指南。

這就是全部的內容了,更多精彩內容即將呈現,請保持關註!

乾杯!

赞(0)

分享創造快樂