URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 97579
[ Назад ]

Исходное сообщение
"Как надёжно в скрипте получать имя сетевого интерфейса?"

Отправлено And , 26-Апр-20 11:40 
Как надёжно предсказывать имена сетевых интерфейсов или зафиксировать имена? Какой способ тру и прямой?

Интерфейсы под витую пару и Wi-Fi. В зависимости от подключённой сети имена плавают. Видимо, фиксировать на базе MAC адресов, если нет более подходящих (проводный, беспроводный, б\п технология).

Можно грепать в /sys/class/net/ Можно грепать в результатах ip addr
Судя по https://wiki.debian.org/NetworkInterfaceNames#How_to_migrate...
вот он - тру-вэй, но удивительно как-то:


while read dirname
do
    echo ""
    echo "=== $( basename "$dirname" ) === $( cat $dirname/address )  ==="
    udevadm test-builtin net_id $dirname
done <<< "$( find /sys/class/net/ -maxdepth 1 -type l | egrep -v "/lo$" )"

Есть другие, может более прямые, методы?

В первую очередь интересны независимые от дистрибутива способы. Прежние схемы наименований с net.ifnames и т.п. потихоньку выпиливают, насколько понимаю - https://wiki.debian.org/NetworkInterfaceNames#How_to_get_it_...



Содержание

Сообщения в этом обсуждении
"Как надёжно в скрипте получать имя сетевого интерфейса?"
Отправлено Аноним , 26-Апр-20 13:07 
> Есть другие, может более прямые, методы?

Более прямой метод - настроить постоянные имена интерфейсов.

> В первую очередь интересны независимые от дистрибутива способы. Прежние схемы наименований
> с net.ifnames и т.п. потихоньку выпиливают, насколько понимаю

Наоборот, впиливают: http://vasilisc.com/stateless-persistent-network-interface-n...
Видимо у вас что-то пошло не так в процессе.

Я у себя ручками правлю /etc/udev/rules.d/70-persistent-net.rules - благо железо не часто меняется. Да и удобно помнить, что eth0 всегда смотрит в интернет, а eth1 - в локалку. Когда понадобилось сделать мост - назвал интерфейсы lan1 и lan2, объединил их в br1 и тоже не путаюсь.