Dotyczy to Linuksa, ale jeśli ktoś wie o ogólnej metodzie * nix, byłoby to dobre.
Wczoraj uruchomiłem system z podłączonym kablem Ethernet. „NetworkManager” nie jest zainstalowany, więc po uruchomieniu poszedłem poszukać nazwy interfejsu Ethernet, ifconfig
aby ręcznie uruchomić klienta DHCP, ale nie pokazał nic innego niż lo
.
Karta sieciowa została wymieniona za pośrednictwem lspci
i załadowano odpowiedni sterownik jądra. System zwykle korzysta z Wi-Fi i pamiętam nazwę tego interfejsu wlan0
. Kiedy próbowałem ifconfig wlan0 up
, wlan0
pojawił się. Ale jedyne nazwy interfejsów ethernetowych, które pamiętałem, to eth[N]
i em[N]
żadne z nich nie działało.
Dokument ten odnosi się do „przewidywalnych nazw interfejsów”, ale nie wyjaśnia dobrze, czym mogą być w prostych słowach. Odnosi się do fragmentu kodu źródłowego, który sugeruje, że w tym przypadku nazwa może zostać wydedukowana z szyny PCI i numerów gniazd, co wydaje się niepotrzebnie skomplikowanym problemem.
Inne poszukiwania doprowadziły mnie do wniosku, że można to ustalić systemd
w połączeniu z udev
, ale jest tam prawie 100 plików /usr/lib/udev/rules.d
i spędzanie godziny na ustaleniu, gdzie (a jeśli ) jest systemowy plik konfiguracyjny, również wydaje się śmieszne.
Byłoby również miło wiedzieć, że są one dostępne, a nie tylko, jak mogą być nazwane, jeśli są, więc mogę wykluczyć problemy ze sprzętem itp. Czy nie ma prostego sposobu na znalezienie nazw dostępnych interfejsów sieciowych na Linuksie?
ip link
ale następnie akceptujesz odpowiedź, która sugeruje,ip link show
co robi dokładnie to samo. Dlaczego?ip route
- napisałem to pytanie następnego dnia po rozwiązaniu problemu (patrz moja odpowiedź); Nie mam zwyczaju używaniaip
i nie doceniam nadmiernie spartańskich stron podręcznika, więc prawdopodobnie porzuciłem to po jednej próbie i zacząłem przeglądać/sys
, ponieważ wiedziałem, że kmod został załadowany itp. I było to prostsze Dla mnie. Całkowicie usunę to z pytania.Odpowiedzi:
Najprostszą metodą, jaką znam na liście wszystkich twoich interfejsów, jest
EDYTOWAĆ
Jeśli korzystasz z systemu, w którym stało się to przestarzałe, możesz użyć
źródło
ip
ma równoległe, ponieważ podobno ifconfig jest „przestarzały” na korzyść tego (IMO) bardziej tępego i mniej przyjaznego dla użytkownika polecenia.man ifconfig
: „UWAGA Ten program jest przestarzały! Do wymiany sprawdź ip ...” To może być specyficzne dla systemu Linux. Mam nadzieję, że muszą to zachować, aby zachować zgodność z czymś wstecznym.ip
. Zobacz artykuł Wikipedii ifconfig: en.wikipedia.org/wiki/Ifconfig .Jądro wyświetla je według nazwy
/sys
, zarówno osobno w (np.) Drzewie urządzeń PCI - chociaż znalezienie ich tam, jeśli nie wiesz, od czego mają zacząć, nie jest proste - i razem poprzez dowiązania symboliczne/sys/class/net
. Na przykład:Inny przykład:
Jeśli nie masz pewności, który z nich, możesz po prostu postawić je wszystkie:
Lub:
A następnie spójrz na (dość jasne) wskazówki wymienione przez
ifconfig
(bez argumentów). Systemowy kod źródłowy powiązany z dokumentem Freedesktop.org odnosi się również do:Chociaż w jednym z powyższych przypadków (
p6s1
) nie ma przedrostka.źródło
eth
. Wierzę, żeen
jest do bezprzewodowej sieci LAN.eth
to jądro Linuksa; systemd implementuje za pomocą udev przewidywalne nazwy interfejsów Freedesktop.org - jądra nie są przewidywalne w tym samym sensie, co jest przyczyną całego zamieszania. Cytat powyżej jest wyraźnie wycięty i wklejony stąd . Jest w tym coś więcej, ponieważ nie mam żadnych systemowych maszyn korzystającychen
z Ethernetu; najbliższe jest toem
, że inni są zupełnie inni. Możesz przeczytać link Freedesk.org w pytaniu, aby uzyskać dodatkowe wyjaśnienia.eno1
.Zawsze robię
cat /proc/net/dev
to proste i łatwe do zapamiętaniaźródło
ifconfig
= Solarisipconfig
= Windowsip
= LinuxWiem, ale z pewnością jestem otwarty na uzupełnienia i poprawki.
źródło
man ifconfig
systemie Linux.