
我已經遇到過幾次問題,我在虛擬機器中安裝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 名稱看起來像enp0s3
或eno1
那麼它們也應該按順序排列(儘管不一定是連續的),在您的情況下方enp0s3
將是 NIC 1,enp0s8
將是 NIC 2 等...
答案2
enp0s3
或者enp0s8
是
- 乙太網路週邊設備
- #
- 序列埠
- #
執行以下命令之一應該會有所幫助(特別是如果您知道 Vbox 中哪些主機連線被標記為什麼):
ip addr
ip -a
lspci
/lsusb
(都顯示型號;lspci
通常更能說明問題)