2016-04-01 3 views
1

Как уже упоминалось here так Ubutnu 15.10 есть несколько различных схем именования сетевых интерфейсов поддерживаются:Предсказать имена интерфейсов, начиная с Ubuntu 15.10

  • имена, включающие Firmware/BIOS при условии номера индексов для бортовых устройств (пример: eno1)
  • имена, включающие прошивки/BIOS предусмотрено PCI Express слот автоопределения номера индексов (пример: ens1)
  • имена, включающие физические/географическое расположение соединителя аппаратных средств (е Xample: enp2s0)
  • имен, включающих MAC-адрес интерфейсов на нем (например: enx78e7d1ea46da)
  • Classic, непредсказуемое ядро ​​родной ethX имена (например, eth0) - амортизируется

Я пишу сценарий, принимает имя интерфейса с Grep:

if_name=$(ls /sys/class/net | grep "en") 

, а затем изменяет его на ETH. Я протестировал скрипт на нескольких машинах, и все было в порядке, но есть ли вероятность, что имя интерфейса теперь может начинаться с других букв, и моя команда выше не будет работать? И если да, есть ли какие-то лучшие альтернативы?

+0

Да есть лучший способ, чем сделать для него некоторый сценарий bash. Посмотрите, почему и как это было сделано [здесь] (https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/), и особенно раздел «Мне это не нравится, как мне отключить это? " – jbm

+0

Спасибо, это именно то, что я делаю в своем скрипте, но до этого мне нужно вызвать текущее имя интерфейса и текущий MAC-адрес, который принадлежит его имени. –

+0

Да, и поэтому вы не хотите этого в скрипте, но, скорее, автоматически при запуске системы, следуя указателям в «Мне это не нравится, как мне отключить это?». ссылка, которую я предоставил. В противном случае у вас проблема с курицей и яйцом. – jbm

ответ

0

Хорошо, я узнал here, что два персонажа префиксы на основе типа интерфейса:

* en -- Ethernet 
* sl -- serial line IP (slip) 
* wl -- wlan 
* ww -- wwan 

Кроме того, лучший способ узнать вас основное имя интерфейса:

route |grep default |awk ' {print $8} ' 
Смежные вопросы