Как надёжно предсказывать имена сетевых интерфейсов или зафиксировать имена? Какой способ тру и прямой?Интерфейсы под витую пару и 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_...
> Есть другие, может более прямые, методы?Более прямой метод - настроить постоянные имена интерфейсов.
> В первую очередь интересны независимые от дистрибутива способы. Прежние схемы наименований
> с net.ifnames и т.п. потихоньку выпиливают, насколько понимаюНаоборот, впиливают: http://vasilisc.com/stateless-persistent-network-interface-n...
Видимо у вас что-то пошло не так в процессе.Я у себя ручками правлю /etc/udev/rules.d/70-persistent-net.rules - благо железо не часто меняется. Да и удобно помнить, что eth0 всегда смотрит в интернет, а eth1 - в локалку. Когда понадобилось сделать мост - назвал интерфейсы lan1 и lan2, объединил их в br1 и тоже не путаюсь.