Вопрос или проблема
Сегодня утром у меня нет сетевого подключения (вчера проблем не было) на настольном компьютере с версией 16.04. Я не могу напрямую вставить выводы команд по очевидным причинам, но постараюсь описать проблему.
lshw -C network
отображает как беспроводную, так и ethernet-карты, но нет ни физического идентификатора, ни логического имени для любой из них.
Я попытался вручную добавить eth0 в /etc/network/interfaces следующим образом, думая/надеясь, что ifup назначит ей что-нибудь?!
auto eth0
iface eth0 inet dhcp
Когда я запускаю
$ifup eth0
Я получаю следующие ошибки:
"Невозможно найти устройство "eth0" Ошибка получения аппаратного адреса для eth0"
Как я могу присвоить логическое имя моим сетевым адаптерам?
Эта ошибка характерна для Ubuntu. Чтобы иметь возможность конфигурировать интерфейсы, используя команды ifup и ifdown или ifconfig up и ifconfig down, вам нужно добавить эти интерфейсы в файл:
/etc/network/interfaces
Откройте этот файл, используя
$nano /etc/network/interfaces
Вы увидите, что первая строка гласит:
interfaces(5) файл, используемый ifup(8) и ifdown(8)
так что добавьте нужный интерфейс в этот файл, затем перезапустите сетевую службу, и вы сможете запустить команду.
1 – Откройте файл для редактирования
2 – добавьте строку (с новой строки)
auto (имя_интерфейса_без_скобок)
3 – сохраните файл и выйдите
4 – $sudo service networking restart
5 – Попробуйте команды ifup или ifdown
Ответ или решение
Проблема с отсутствием логического имени для сетевого адаптера в Ubuntu 16.04 является распространенной и может быть вызвана несколькими факторами, такими как изменения в настройках сети или системные обновления. Рассмотрим, как можно решить эту проблему и восстановить сетевую функциональность.
Формулирование проблемы
Пользователь обнаружил утром отсутствие сетевого соединения, хотя накануне всё работало без сбоев. При выполнении команды lshw -C network
сетевые карты обнаруживаются, но ни одна из них не имеет физического идентификатора или логического имени. Попытка вручную добавить интерфейс eth0
в файл конфигурации /etc/network/interfaces
не решает проблему, и команда ifup eth0
выдает ошибку о невозможности найти устройство.
Исследование причин
-
Изменения в номенклатуре сетевых интерфейсов: Ubuntu 16.04 может использовать новую схему именования сетевых интерфейсов, основанную на предсказуемых именах устройств (Predictable Network Interface Names). Например, вместо традиционного
eth0
интерфейсы могут называтьсяenp3s0
или аналогично в зависимости от оборудования. -
Отсутствие корреляции между аппаратными адресами и логическими именами может возникнуть из-за изменений в конфигурации, обновлений или проблем с драйверами.
Решение проблемы
-
Проверка текущих имен интерфейсов:
- Запустите команду
ip link
илиifconfig -a
, чтобы отобразить список всех сетевых интерфейсов и их текущие имена. Это поможет определить новое логическое имя вашего интерфейса.
- Запустите команду
-
Обновление файла конфигурации:
- Откройте файл
/etc/network/interfaces
с помощью текстового редактора, например:sudo nano /etc/network/interfaces
- Обновите конфигурацию, используя обнаруженное имя интерфейса, например:
auto enp3s0 iface enp3s0 inet dhcp
- Откройте файл
-
Перезапуск сетевых служб:
- Выполните команду для перезапуска сетевой службы:
sudo service networking restart
- Выполните команду для перезапуска сетевой службы:
-
Дополнительные действия в случае неудачи:
- Проверьте, загружены ли соответствующие модули драйверов с помощью
lsmod
. - Ознакомьтесь с системными логами через
dmesg
илиjournalctl -xe
для обнаружения ошибок.
- Проверьте, загружены ли соответствующие модули драйверов с помощью
Заключение
Данная ситуация требует тщательной проверки конфигурации сетевых интерфейсов и возможной адаптации к изменениям в их именованиях. Следуя описанным шагам и убедившись в правильной загрузке и конфигурации сетевых драйверов, вы сможете восстановить подключение и обеспечить бесперебойную работу системы.