W Virtual Box, skąd wiesz, która karta sieciowa jest z linii poleceń systemu Linux?

2

Kilka razy napotkałem problem polegający na tym, że instaluję Linux na maszynie wirtualnej, a wszystkie moje interfejsy wyglądają jak „enp0s3” lub „enp0s8”.

W jednym teście uruchomiłem maszynę wirtualną z 4 wirtualnymi kartami sieciowymi, które jakoś pokazały się w systemie Linux jako:

enp0s3 enp0s8 enp0s9 enp0s17

Sam schemat numeracji myli mnie, ale w większości nie jestem pewien, jak ustalić, który z nich wskazuje na którą kartę sieciową.

Jeśli robię lspci, pokazuje mi wszystkie urządzenia w systemie, ale nie pokazuje, w jaki sposób łączą się z listą interfejsów ... jeśli zrobię „ip link show”, pokaże mi wszystkie interfejsy, ale nie NIC, są załączonym do. Co ja robię?

EDYTOWAĆ:

Aby to wyjaśnić, nie próbuję nic robić z moją fizyczną warstwą sprzętu. Kiedy szukam „która nic jest która”, próbuję znaleźć najlepszą metodę ustalenia, który interfejs (enp0sX) wskazuje, która z 4 wirtualnych kart sieciowych Virtual Box. Oczywiście, jeśli masz jedną nic, to się tłumaczy, ale jeśli używasz wszystkich 4 wirtualnych kart sieciowych i wszystkie używają tego samego sterownika, trudno jest ustalić, który z nich.

Volumetricsteve
źródło
spróbuj ifconfiglubip a
td512
to mnie zbliża, teraz mam adres mac i mogę stamtąd wrócić do tyłu ... ale niektóre systemy są fajne, gdzie możesz stwierdzić, która nic jest zgodna ze sterownikiem, ale to nie wydaje się już obecne ..
Volumetricsteve
1
Czy mam rację mówiąc, że chcesz wiedzieć, która z twoich wirtualnych kart sieciowych odpowiada sprzętowej karcie sieciowej na hoście? Gość jest nieświadomy sprzętu hosta, zna tylko wirtualny. Od gospodarza możesz zrobić coś takiego VBoxManage showvminfo {vmname}lub VBoxManage list bridgedifsuzyskać inne informacje. . . nadal muszę dokonać odsyłacza. . .
ernie
o nie, przepraszam Ernie, wyjaśnię więcej. Moja maszyna wirtualna ma dwie wirtualne karty sieciowe, jedną opartą na chipsecie AMD, a drugą sterownikiem Intela ... Myślę, że powszechnie uważa się ją za „e1000”. Virtual Box łączy AMD nic z moim połączeniem Wi-Fi, dzięki czemu może rozmawiać bezpośrednio z DHCP w moim domu. Chcę mieć możliwość skonfigurowania mojej drugiej wirtualnej nici do przekazywania pakietów na kolejną maszynę wirtualną, aby po prostu nauczyć się, jak to robić ... ale nie jestem jeszcze tak daleko w problemie. Wciąż próbuję dowiedzieć się z poziomu systemu operacyjnego. Mogę ustalić, która karta sieciowa jest która.
Volumetricsteve
W tej chwili wygląda na to, że muszę znać MAC każdej karty sieciowej, a następnie przejść od tego momentu.
Volumetricsteve

Odpowiedzi:

3

Istnieje kilka sposobów, aby to rozgryźć, ale oto dwie najbardziej niezawodne metody (moim zdaniem) ...

Metoda nr 1 (najbardziej niezawodna)

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 

Dopasuj adresy MAC do pokazanych w urządzeniu Ustawienia sieciowe (z hosta). To znaczy, kliknij prawym przyciskiem myszy maszynę wirtualną, przejdź do Ustawienia, a następnie Sieć, spójrz na pole Adres MAC dla każdej karty.

Inne polecenia, które będzie lista adresów MAC obejmują ip addr, ip link show, lshw -C network. Myślę, że polecenie, które wysłałem, daje jednak najczystsze wyjście.

Metoda nr 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

numery magistrali PCI będą w kolejności ... 3, 8, 9, a (10). Tak, że przekłada się na 3 = NIC 1, 8 = Nic2, itp ... Należy pamiętać, że jeśli wasze imiona NIC wyglądać enp0s3czy eno1powinny one być również w porządku (choć niekoniecznie sekwencyjną), w danym przypadku enp0s3byłoby NIC 1, enp0s8byłoby być NIC 2 itp.

Drew Chapin
źródło
Jeśli jest to centos, to grep dla „ether” w wyjściu ifconfig zamiast „HWadd ..”. To jest adres MAC.
Khanna111
-1

enp0s3lub enp0s8

  • Peryferia sieci Ethernet
  • #
  • Port szeregowy
  • #

Uruchomienie jednego z poniższych powinno pomóc (zwłaszcza jeśli wiesz, które połączenia HOST zostały oznaczone jako oznaczone w Vbox):

ip addr
ip -a
lspci  /  lsusb                 (oba pokazują numery modeli; lspciogólnie jest bardziej wymowny)

linuxdev2013
źródło
Wygląda mi na to, że ip addr i ip -a mają identyczne wyjścia. Nie ma nic, co pokazałoby „ten adres MAC jest tutaj na magistrali PCI i ma nazwę interfejsu bla”? Korelacja nazwy mac i interfejsu na raz byłaby naprawdę topami ... ale wygląda na to, że nie jest to łatwo dostępne.
Volumetricsteve
Nadal mam wrażenie, że próbujesz uzyskać dane z komputera fizycznego (= hosta). Z poziomu aplikacji uruchomionej na maszynie wirtualnej nie można się tam dostać bezpośrednio. Możesz jednak połączyć się z hostem za pomocą np. SSH, a następnie użyj lspci lub cokolwiek innego.
jcoppens
jcoppens - Zredagowałem swoje oryginalne pytanie, aby spróbować rozwiązać wszelkie nieporozumienia.
Volumetricsteve