# apt install ethtoolДля разовых задач особого смысла в этом нет, потому что все подобные утилиты берут информацию у ядра. Нет никаких проблем самим её посмотреть. Проверяем имена своих сетевых интерфейсов:
# ip a И смотрим скорость:
# cat /sys/class/net/enp4s0/speed1000В данном случае это скорость 1000Mb/s или 1Gb/s. Если у вас виртуальная машина, то в зависимости от типа эмуляции, вы можете получить неожиданные значения:
# cat /sys/class/net/ens18/speed-1В данном случае
-1 - это отсутствие какого-либо значения, нет данных. Это характерно для виртуальных машин в KVM. Virtio-драйвер не сообщает реальную физическую скорость (у него её просто нет) даже если он в бридже с реальной сетевой картой. А вот драйвер в Hyper-V сообщает:# cat /sys/class/net/eth0/speed1000Это скорость сетевой карты, которая в бридже с виртуальным коммутатором для виртуальных машин.
☝️Кстати, если хотите быстро узнать, в виртуалке вы или на железе, запустите:
# hostnamectlЯ всегда использую эту команду для таких задач.
Помимо скорости интерфейса, ядро может передать всю остальную информацию. Например, наличие линка, параметры дуплекса, mtu или mac адрес:
# cat /sys/class/net/enp4s0/carrier1# cat /sys/class/net/enp4s0/duplexfull# cat /sys/class/net/enp4s0/mtu1500# cat /sys/class/net/enp4s0/address00:25:22:dc:39:42Можете зайти в директорию
/sys/class/net/enp4s0/ и посмотреть всё, что там есть.Таким образом можно посмотреть всё, что угодно из того, что показывают системные утилиты. Просто некоторые значения нужно преобразовывать. Например, открытые TCP порты:
# cat /proc/net/tcpНомера портов будут в шестнадцатеричном формате. Подобным образом у ядра можно выведать массу информации. Примерно этим и занимаются многочисленные клоны *top-ов и им подобных утилит. Вы и сами что-то подобное можете написать под свои задачи относительно просто, особенно с помощью ИИ.
#linux #terminal
