Вопрос или проблема
У меня возникла проблема при настройке второго сетевого интерфейса для моего сервера Ubuntu. Взгляните на это:
root@ubuntubox01:~# lshw -short | grep network
/0/100/15/0 ens160 network VMXNET3 Ethernet Controller
/0/100/16/0 ens192 network VMXNET3 Ethernet Controller
Когда я смотрю на IP-адреса:
root@ubuntubox01:~# ip addr sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:b6:52:89 brd ff:ff:ff:ff:ff:ff
inet XXX.XXX.XXX.XXX/24 brd XXX.XXX.XXX.XXX scope global ens160
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:feb6:5289/64 scope link
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:b6:e2:2d brd ff:ff:ff:ff:ff:ff
inet6 fe80::250:56ff:feb6:e22d/64 scope link
valid_lft forever preferred_lft forever
Но если я делаю:
root@ubuntubox01:~# ifup ens192
Unknown interface ens192
То же самое происходит, когда я пытаюсь использовать файл interfaces. Есть идеи, почему Ubuntu видит физический интерфейс, но отказывается подключать его, заявляя, что интерфейс неизвестен?
Я использую ubuntu 16.04 Server 64 бит. Это виртуальная среда, кстати.
С уважением,
C.
Проверьте ваш файл /etc/network/interfaces,
он должен содержать:
auto ens192
iface ens192 inet dhcp
или для статического:
auto ens192
iface ens192 inet static
#параметры
вы можете сделать:
sudo ip link set dev eth0 down
sudo dhclient eth0
замените eth0
на имя интерфейса. Этот фрагмент взят из https://help.ubuntu.com/community/NetworkConfigurationCommandLine/Automatic
Также проверьте орфографию всего в /etc/network/interfaces. У меня была такая же проблема, как и у вас, потому что имя iface было написано с ошибкой.
Ответ или решение
Вопрос о неизвестном интерфейсе в Ubuntu 16.04 связан с проблемами конфигурации сетевых интерфейсов в виртуальной среде. На сервере обнаруживаются два сетевых интерфейса, ens160 и ens192, однако попытка активировать интерфейс ens192 с помощью команды ifup ens192
завершается ошибкой "Unknown interface". Давайте разберемся, что может быть причиной этой проблемы и как ее можно решить.
Теория (Theory)
В Ubuntu сетевые интерфейсы обычно настраиваются через файл /etc/network/interfaces
. Основой конфигурации является указание, какие интерфейсы должны автоматически активироваться при загрузке системы и каким образом они получают IP-адреса (например, динамически через DHCP или статически).
Ошибочное поведение, описанное в исходном вопросе, может возникать по нескольким причинам:
- Ошибки в конфигурационном файле: Неправильная запись или синтаксическая ошибка в
/etc/network/interfaces
может привести к тому, что система не распознает интерфейс. - Именование интерфейсов: В Ubuntu 16.04 используются предсказуемые имена интерфейсов, такие как ens160, но в некоторых случаях может быть неправильное сопоставление имен.
- Недостаток драйверов или сервисов: Компоненты, ответственные за управление сетевым интерфейсом, могут быть неактивны или неправильно настроены.
Пример (Example)
Рассмотрим пример конфигурационного файла для правильной настройки интерфейса ens192:
auto ens192
iface ens192 inet dhcp
Или для статического IP:
auto ens192
iface ens192 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
Важно, чтобы конфигурация записывалась без синтаксических ошибок, и имена интерфейсов соответствовали выводам команды ip addr
.
Применение (Application)
Чтобы исправить проблему, следуйте следующим шагам:
-
Проверка файла конфигурации:
- Откройте файл
/etc/network/interfaces
с помощью текстового редактора:sudo nano /etc/network/interfaces
- Убедитесь, что запись для ens192 правильная, синтаксис верный и соответствуют ли имена интерфейсов тому, что выводит
ip addr
.
- Откройте файл
-
Проверка и перезапуск сетевого сервиса:
sudo systemctl restart networking
Или, если используется
NetworkManager
:sudo systemctl restart NetworkManager
-
Инициализация DHCP-клиента вручную:
Если используется динамическое получение IP, попробуйте инициализировать DHCP-клиент вручную:sudo dhclient ens192
-
Проверка указаний BIOS/UEFI:
Если машина виртуальная, убедитесь, что соответствующие настройки на уровне виртуализации корректны и интерфейс не деактивирован. -
Логирование и диагностика:
Найдите и изучите логи сетевой подсистемы в/var/log/syslog
или/var/log/messages
, чтобы выявить ошибки и предупреждения.
Если после выполнения всех проверок и изменений проблема остается, возможно, стоит рассмотреть обновление системы до более поздней версии или переустановить сетевые компоненты.
Такой системный и методичный подход поможет не только решить возникшую задачу, но и укрепить понимание сетевой конфигурации на Ubuntu, что будет полезно в дальнейшей работе с системами на основе Linux.