Я обновил виртуальную машину с сервером Ubuntu 15.04 до новой стабильной версии 15.10.
Не было никаких явных проблем, но после перезагрузки машина потеряла сетевое соединение. lspci
показал правильную карту и lsmod
доказал, что драйвер был загружен.
Подсказки по редактированию или удалению /etc/udev/rules.d/70-persistent-net.rules
не увенчались успехом (до сих пор нет сети, нет нового файла), знаменитых /lib/udev/write_net_rules
даже не было.
Я не очень разбираюсь в udev и systemd, поэтому мне потребовалось некоторое время, чтобы найти в / sys / class / net, что имя сетевого интерфейса изменилось. Это стало ens32
, которое было переименовано из eth0
. После того, как я сменил /etc/network/interfaces
сеть, связь снова была включена.
Но - почему это вообще происходит? И если это произойдет, не должен ли файл интерфейсов обновляться автоматически?
Теперь, когда я удалил виртуальную сетевую карту и создал другую, eth0
становится eno16777728
, что не очень приятно.
Следует ли сообщать об этом поведении (по крайней мере, о процедуре обновления) как об ошибке?
Кроме того, /etc/udev/rules.d/70-persistent-net.rules
устарел сейчас? И (хотя только частично связаны), как насчет /etc/udev/rules.d/70-persistent-cd.rules
?)
Редактировать - дополнительный вопрос (после принятого ответа)/etc/network/interfaces
Меня беспокоит
зависимость от реального имени интерфейса. Я попробовал новую установку * Ubuntu на другой виртуальной машине. К моему удивлению, /etc/network/interfaces
содержалась ссылка только на петлевое устройство. Однако с моей оригинальной виртуальной машиной это изменение помешало работе сети. Так что еще мне нужно изменить?
Редактировать
Ну, из другого теста я обнаружил, что новый сервер Ubuntu имеет сетевую карту, в /etc/network/interfaces
то время как XUbuntu нет. Возможно это использует network-manager
или что-то еще.
источник
Ответы:
В Ubuntu 15.10 (Wily Werewolf), начиная с systemd / udev, автоматически назначаются предсказуемые, стабильные имена сетевых интерфейсов для всех локальных интерфейсов Ethernet, Wlan и Wwan ( источник ).
Следующие различные схемы именования сетевых интерфейсов теперь поддерживаются udev:
eno1
)ens1
)enp2s0
)enx78e7d1ea46da
)eth0
- не рекомендуетсяПо умолчанию systemd теперь будет называть интерфейсы следующей политикой:
Как вы отключите это?
У вас есть следующие варианты:
/etc/udev/rules.d/70-my-net-names.rules
cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules
затем отредактируйте файл и измените строки, если необходимо.net.ifnames=0
в командной строке ядра.источник
Существует более простой способ, которым рассказывает ArchWiki Beginnersguide .
Сначала получите MAC-адрес вашего устройства по
Выход показывают как
MAC-адрес вашего устройства
Просто создайте файл (просто откройте с правами sudo в текстовом редакторе)
Добавить следующую строку
Замените имя на требуемое имя и aa: bb: cc: dd: ee: ff на MAC-адрес вашего устройства.
Теперь просто перезагрузите компьютер, и имя устройства должно было измениться.
источник
DRIVERS=="?*",
послеACTION=="add",
. См. Также askubuntu.com/questions/767786/…Попробуйте это: отредактируйте ваш
/etc/default/grub
. Изменить строку св
и, наконец, запустить:
от имени root и перезагрузите систему.
источник
append (...) net.ifnames=0 (...)
Я знаю, что это может быть немного поздно, и добавление 10-network.rules, похоже, помогло, но не полностью. Мне пришлось добавить имя ядра устройства для переименования. Вот как я получил /etc/udev/rules.d/10-network.rules для работы ...
и измените KERNEL == "" на то, что ваше ядро называет устройством при загрузке.
НТН
KC
источник
Если у вас свежая установка
затем
Проверьте, есть ли у вас файл udev net ruels. Если так, удалите это.
Теперь отредактируйте / etc / network / interfaces, переименуйте интерфейсы в eth0, eth1, ... и т. Д.
перезагрузка
источник
Я получил это работает, создав файл:
источник