Dette er med hensyn til linux, men hvis noen vet om en generell *nix-metode som ville være bra.
Jeg startet et system i går med en Ethernet-kabel koblet til. "NetworkManager" er ikke installert, så når det startet, gikk jeg for å lete etter navnet på Ethernet-grensesnittet med ifconfig
for å starte en DHCP-klient manuelt, men det viste ikke noe annet enn lo
.
NIC ble oppført via lspci
, og den aktuelle kjernedriveren ble lastet inn. Systemet bruker normalt wifi, og jeg kunne huske grensesnittnavnet for det var wlan0
. Da jeg prøvde ifconfig wlan0 up
, dukket wlan0
opp. Men de eneste ethernet-grensesnittnavnene jeg kunne huske var eth[N]
og em[N]
- ingen av dem fungerte.
Dette dokumentet refererer til "forutsigbare grensesnittnavn", men gjør ikke en god jobb med å forklare hva de kan være i enkle termer. Det refererer til et stykke kildekode som antyder at navnet i dette tilfellet kan utledes fra PCI-bussen og spornumrene, noe som virker som et unødvendig komplisert problem.
Andre søk rundt fikk meg til å tro at dette kan bestemmes av systemd
i forbindelse med udev
, men det er nesten 100 filer i /usr/lib/udev/rules.d
og å bruke en time på å prøve å finne ut hvor (og om) det er en systemd-konfigurasjonsfil for dette virker også latterlig.
Det ville også være fint å vite med sikkerhet at de er tilgjengelige, ikke bare hvordan de kan navngis hvis de er, slik at jeg kan utelukke maskinvareproblemer osv. Er det ikke en enkel måte å finne navnene på tilgjengelige nettverksgrensesnitt på linux ?
Den enkleste metoden jeg kjenner til for å liste opp alle grensesnittene dine, er følgende
ifconfig -a
EDIT
Hvis du'er på et system der det har blitt gjort foreldet, kan du bruke
ip link show
Kjernen lister dem ved navn i /sys
, både separat i (f.eks.) treet av PCI-enheter - selv om det ikke er enkelt å finne dem der hvis du ikke vet hvor de er til å begynne med - og sammen via symlinks i /sys/class/net
. F.eks:
> ls /sys/class/net
em1 lo wlp6so
Et annet eksempel:
> ls /sys/class/net
lo p6s1 wlan0
Hvis du ikke er sikker på hvilken som er hvilken, kan du bare sette dem opp med begge:
ifconfig [name] up
Eller:
ip link set [name] up
Og se deretter på de (ganske klare) ledetrådene som er oppført av ifconfig
(uten argumenter). Systemd-kildekoden lenket fra Freedesktop.org-dokumentet refererer også til:
Two character prefixes based on the type of interface:
* en -- ethernet
* sl -- serial line IP (slip)
* wl -- wlan
* ww -- wwan
Selv om det i ett av tilfellene ovenfor (p6s1
) ikke er noe prefiks.