Вопрос или проблема
Я установил без проблем, я подключил минимальный iso-файл CloudLinux к моему VPS и загрузился с этого файла. Во время установки сеть была обнаружена без проблем, но как только я перезагрузил сервер после установки cPanel и перезагрузки VPS, он сломался и переименовал eth0 в ens3. Я не могу понять, как сделать так, чтобы он оставался eth0.
Я могу выполнить ifconfig ens3 down
затем ip link set ens3 name eth0
следуемый за ifconfig eth0 up
Это делает так, чтобы все 20 IP были видны и могли пинговаться, странно то, что
когда я использовал ifup eth0, он продолжал говорить nexthop has invalid gateway
, и это не работало, как только я использовал ifconfig eth0 up
, это работало, мне нужно, чтобы он оставался как eth0
Любая помощь будет оценена, спасибо.
Ответ или решение
Здравствуйте,
Проблема, с которой вы столкнулись, связана с тем, как современные дистрибутивы Linux, такие как CloudLinux 8.10, обрабатывают именование сетевых интерфейсов. Это изменение произошло в результате перехода на систему предсказуемых имен интерфейсов (Predictable Network Interface Names) в рамках udev. Вместо традиционного "eth0", интерфейсы получают более детерминированные имена, такие как "ens3".
Теория:
Цель использования предсказуемых имен интерфейсов заключается в повышении надежности именования. Традиционная схема именования "ethX" иногда могла приводить к неконсистентности, особенно в системах с несколькими сетевыми устройствами. В новых схемах в основу именования могут быть положены, например, физическое расположение или последовательность подключения устройств.
Пример:
В вашем случае система изменила имя интерфейса с "eth0" на "ens3" после установки и перезагрузки cPanel. Вы поменяли имя интерфейса обратно на "eth0" вручную, используя команды ifconfig
и ip link
, однако это решение является временным и не сохранится при следующей перезагрузке системы.
Применение:
Для решения вашей задачи и стабильного переименования интерфейса на "eth0" необходимо изменить конфигурацию системы, следуя одному из вариантов:
-
Отключение предсказуемых имен интерфейсов:
-
Отредактируйте параметры загрузки системы. В файле конфигурации загрузки
GRUB
добавьте параметрnet.ifnames=0
к строке загрузки ядра. Пример:GRUB_CMDLINE_LINUX="... net.ifnames=0"
-
Обновите конфигурацию
GRUB
:sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
Переименуйте файлы конфигурации сетевых интерфейсов в
/etc/sysconfig/network-scripts/
, чтобы они соответствовали новому имени интерфейса.
-
-
Создание udev правила:
-
Создайте новое правило udev, чтобы указывать желаемое имя интерфейса:
sudo nano /etc/udev/rules.d/70-persistent-net.rules
-
Добавьте правило, например:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ваш:mac:адрес", NAME="eth0"
-
Перезагрузите систему.
-
Эти подходы помогут обеспечить статическое наименование интерфейса "eth0", которое сохранится после каждой перезагрузки.
Надеюсь, эти советы помогут вам стабилизировать сетевую конфигурацию на вашем сервере. Если возникнут дополнительные вопросы, пожалуйста, дайте знать.
С уважением,
[Ваше Имя]