Cela concerne Linux, mais si quelqu'un connaît une méthode générale * nix, ce serait bien.
J'ai démarré un système hier avec un câble Ethernet branché. "NetworkManager" n'est pas installé, donc une fois qu'il a démarré, je suis allé chercher le nom de l'interface Ethernet avec ifconfig
pour démarrer un client DHCP manuellement, mais il n'a rien montré d'autre que lo
.
Le NIC a été répertorié via lspci
et le pilote de noyau approprié a été chargé. Le système utilise normalement le wifi, et je pouvais me souvenir du nom de l'interface car c'était wlan0
. Quand j'ai essayé ifconfig wlan0 up
, wlan0
apparu. Mais les seuls noms d'interface Ethernet dont je me souvenais étaient eth[N]
et em[N]
- aucun des deux n'a fonctionné.
Ce document fait référence aux "noms d'interface prévisibles" mais ne fait pas un bon travail pour expliquer ce qu'ils pourraient être en termes simples. Il fait référence à un morceau de code source qui implique que le nom dans ce cas pourrait être déduit du bus PCI et des numéros d'emplacement, ce qui semble être une corvée inutilement compliquée.
D'autres recherches m'ont amené à croire que cela pourrait être déterminé par systemd
en conjonction avec udev
, mais il y a près de 100 fichiers dans /usr/lib/udev/rules.d
et passer une heure à essayer de déterminer où (et si) il y a un fichier de configuration systemd pour cela semble également ridicule.
Il serait également agréable de savoir avec certitude qu'ils sont disponibles, pas seulement comment ils peuvent être nommés si ils le sont, donc je peux exclure les problèmes matériels, etc. N'y a-t-il pas un moyen simple de trouver les noms des interfaces réseau disponibles sur Linux?
La méthode la plus simple que je connaisse pour répertorier toutes vos interfaces est
ifconfig -a
MODIFIER
Si vous êtes sur un système où cela a été rendu obsolète, vous pouvez utiliser
ip link show
Le noyau les répertorie par nom dans /sys
, à la fois séparément (par exemple) dans l'arborescence des périphériques PCI - bien que les trouver là-bas si vous ne savez pas par où commencer ne soit pas simple - et ensemble via des liens symboliques dans /sys/class/net
. Par exemple.:
> ls /sys/class/net
em1 lo wlp6so
Un autre exemple:
> ls /sys/class/net
lo p6s1 wlan0
Si vous ne savez pas lequel est lequel, vous pouvez tout simplement les mettre soit avec:
ifconfig [name] up
Ou:
ip link set [name] up
Et puis regardez les indices (assez clairs) répertoriés par ifconfig
(sans arguments). Le code source de systemd lié à partir du document Freedesktop.org fait également référence à:
Two character prefixes based on the type of interface:
* en -- ethernet
* sl -- serial line IP (slip)
* wl -- wlan
* ww -- wwan
Bien que dans l'un des cas ci-dessus (p6s1
) il n'y a pas de préfixe.
Je fais toujours cat /proc/net/dev
c'est simple et facile à mémoriser
ifconfig
= Solarisipconfig
= Windowsip
= Linux
Je le sais, mais je suis certainement ouvert aux ajouts et aux corrections.