Ceci est en rapport avec 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é listé via lspci
, et le pilote approprié du noyau a été chargé. Le système utilise normalement le wifi, et je me souviens que le nom de l'interface pour cela était wlan0
. Quand j'ai essayé ifconfig wlan0 up
, wlan0
est apparu. Mais les seuls noms d'interface ethernet dont je me souviens sont eth[N]
et em[N]
-- aucun ne fonctionne.
[Ce document][1] fait référence à des "noms d'interface prévisibles", mais n'explique pas très bien ce qu'ils sont 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 un problème inutilement compliqué.
D'autres recherches m'ont amené à penser que cela pourrait être déterminé par systemd
en conjonction avec udev
, mais il y a presque 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, et pas seulement comment ils pourraient être nommés si ils le sont, afin que je puisse exclure les problèmes matériels, etc. **Il n'y a pas un moyen simple de trouver les noms des interfaces réseau disponibles sous Linux ?
[1] : http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
La méthode la plus simple que je connaisse pour lister toutes vos interfaces est la suivante
ifconfig -a
EDIT
Si vous êtes sur un système où cette fonction a été rendue obsolète, vous pouvez utiliser
ip link show
Le noyau les liste par nom dans /sys
, à la fois séparément dans (par exemple) l'arbre des périphériques PCI -- bien que les trouver là si vous ne savez pas où ils sont pour commencer n'est 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 n'êtes pas sûr de savoir lequel est lequel, vous pouvez simplement les mettre tous avec l'un ou l'autre :
ifconfig [name] up
ou :
ip link set [name] up
Et puis regardez les indices (assez clairs) listés par ifconfig
(sans arguments). Le code source de systemd lié au document de 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 un des cas ci-dessus (p6s1
) il n'y a pas de préfixe.