/ dev / disk / lists discos, por que / dev / net / não lista as interfaces de rede? [duplicado]

6

Eu sei que o udev gerencia dispositivos em /dev e eu esperava encontrar informações sobre os cartões de rede disponíveis ( hardware) ou pelo menos interfaces de rede (software).

ifconfig output mostra-me eth0 e lo , mas /dev/net está vazio. Bem, quase vazio:

$ ls -la /dev/net
total 0
drwxr-xr-x  2 root root      60 Dec 13 09:37 .
drwxr-xr-x 15 root root    4300 Dec 15 12:12 ..
crw-rw-rw-  1 root root 10, 200 Dec 13 09:38 tun

Por que não há informações sobre interfaces de rede em udev ?
Eu realmente gostaria de evitar a execução de ifconfig no processo do meu servidor.

É irrelevante para a questão, mas eu esperava encontrar ids ("lo", "eth0") e endereços IP lá.

    
por anatoly techtonik 16.12.2013 / 17:40

2 respostas

5

O udev não cria nenhum arquivo / dev para placas de rede porque as placas de rede não possuem arquivos de dispositivo. Interfaces de rede são uma das exceções para tudo é um arquivo .

Você pode, no entanto, procurar em /sys/class/net . Isso é mantido pelo kernel diretamente e deve mostrar todas as interfaces de rede no sistema. Você também pode obter a lista de /proc (por exemplo, /proc/net/dev ). Estes são específicos do Linux.

Se você está trabalhando em C, você pode usar if_nameindex e amigos.

    
por 16.12.2013 / 18:04
2

Provavelmente, o driver TUN / TAP é a única coisa que usa esse diretório. Grepping o diretório fonte% 3.11 do kernel Documentation/ , tuntap.txt é a única referência real a ele e isso foi escrito há mais de 12 anos. Eu percebo que o /dev/net não existe em um sistema aqui onde eu configurei o TUN / TAP para fora do kernel.

    
por 16.12.2013 / 18:02