在 Virtual Box 中,如何從 Linux 命令列知道哪個網路卡是哪個?

在 Virtual Box 中,如何從 Linux 命令列知道哪個網路卡是哪個?

我已經遇到過幾次問題,我在虛擬機器中安裝linux,並且我的所有介面看起來都像“enp0s3”或“enp0s8”等。

在一項測試中,我運行了一個帶有 4 個虛擬網卡的虛擬機,不知怎的,這些在 Linux 中顯示為:

enp0s3 enp0s8 enp0s9 enp0s17

僅編號方案就讓我感到困惑,但我大多不確定如何確定哪個指向哪個網卡。

如果我執行lspci,它會向我顯示系統中的所有設備,但不會顯示它們如何連接到接口列表......如果我執行“ip link show”,它會向我顯示所有接口,但不會顯示它們所在的NIC附於.我該怎麼辦?

編輯:

需要澄清的是,我並沒有嘗試對硬體物理層做任何事情。當我試圖查看「哪個網卡是哪個」時,我試圖找出最佳方法來確定哪個介面 (enp0sX) 指向 Virtual Box 的 4 個虛擬網卡中的哪一個。顯然,如果您有一個網卡,這可以解釋清楚,但如果您使用所有 4 個虛擬網卡,並且它們都使用相同的驅動程序,則很難區分哪個是哪個。

答案1

有幾種方法可以解決這個問題,但這裡有兩種最可靠的方法(在我看來)...

方法#1(最可靠)

drew@debian:~$ /sbin/ifconfig -a | grep HWaddr
eth0      Link encap:Ethernet  HWaddr 08:00:27:f7:28:18  
eth1      Link encap:Ethernet  HWaddr 08:00:27:52:8b:6e  
eth2      Link encap:Ethernet  HWaddr 08:00:27:81:d7:5c  
eth3      Link encap:Ethernet  HWaddr 08:00:27:d5:22:e8 

將 MAC 位址與機器網路設定(來自主機)中顯示的位址相符。也就是說,右鍵單擊虛擬機,轉到“設定”,然後轉到“網路”,查看每個適配器的 MAC 位址欄位。

其他列出 MAC 位址的命令包括ip addr, ip link show, lshw -C network。我認為我發布的命令會產生最乾淨的輸出。

方法#2

drew@debian:~$ ls -l /sys/class/net
total 0
lrwxrwxrwx 1 root root 0 May 13 21:59 eth0 -> ../../devices/pci0000:00/0000:00:03.0/net/eth0
lrwxrwxrwx 1 root root 0 May 13 21:59 eth1 -> ../../devices/pci0000:00/0000:00:08.0/net/eth1
lrwxrwxrwx 1 root root 0 May 13 21:59 eth2 -> ../../devices/pci0000:00/0000:00:09.0/net/eth2
lrwxrwxrwx 1 root root 0 May 13 21:59 eth3 -> ../../devices/pci0000:00/0000:00:0a.0/net/eth3
lrwxrwxrwx 1 root root 0 May 13 21:59 lo -> ../../devices/virtual/net/lo

PCI 匯流排編號將依序...3、8、9、a (10)。因此,這將轉換為 3 = NIC 1、8 = NIC2 等...請注意,如果您的 NIC 名稱看起來像enp0s3eno1那麼它們也應該按順序排列(儘管不一定是連續的),在您的情況下方enp0s3將是 NIC 1,enp0s8將是 NIC 2 等...

答案2

enp0s3或者enp0s8

  • 乙太網路週邊設備
  • #
  • 序列埠
  • #

執行以下命令之一應該會有所幫助(特別是如果您知道 Vbox 中哪些主機連線被標記為什麼):

ip addr
ip -a
lspci  /  lsusb                 (都顯示型號;lspci通常更能說明問題)

相關內容