Настройка статических IP-адресов с помощью NetworkManager в RHEL/CentOS
Настройте постоянный статический IP в RHEL или CentOS с помощью `nmcli`, включая шлюз, DNS, активацию и проверку отката.
Настройка статических IP-адресов с помощью NetworkManager в RHEL/CentOS
Сетевое взаимодействие — одна из первых вещей, которую необходимо правильно настроить на сервере. В RHEL и CentOS NetworkManager позволяет настроить постоянный статический IP-адрес без ручного редактирования файлов интерфейсов, что безопаснее в новых версиях Enterprise Linux.
Это руководство описывает команды nmcli для установки адреса, шлюза и DNS-серверов, активации профиля и проверки того, что изменения сохраняются после перезагрузки.
Понимание NetworkManager и nmcli
Прежде чем перейти к шагам настройки, давайте проясним основные компоненты, которые мы будем использовать:
Что такое NetworkManager?
NetworkManager — это демон, который управляет сетевыми настройками, упрощая управление сетевыми подключениями. Он может управлять различными типами подключений, включая Ethernet, Wi-Fi, мобильный широкополосный доступ и VPN. Он автоматически обнаруживает и настраивает сетевые устройства и пытается поддерживать активное сетевое подключение, переключаясь между доступными подключениями по мере необходимости. Для серверов он гарантирует, что ваши сетевые интерфейсы настроены правильно и сохраняются после перезагрузок.
Что такое nmcli?
nmcli — это клиент командной строки для NetworkManager. Он позволяет управлять NetworkManager и настраивать сетевые подключения из терминала. Он особенно полезен в серверных средах без графического интерфейса. Команды nmcli интуитивно понятны и предоставляют надежный способ взаимодействия с полным спектром функций NetworkManager, от отображения состояния сетевых устройств до создания и изменения сложных профилей подключений.
Предварительные требования
Чтобы следовать этому руководству, убедитесь, что у вас есть:
- Права root: Вам понадобится доступ
sudoили вход в систему как root для внесения изменений в сетевую конфигурацию. - Информация о системе: Статический IP-адрес, маска подсети (или нотация CIDR), шлюз по умолчанию и IP-адреса DNS-серверов, которые вы собираетесь использовать.
- Идентифицированный сетевой интерфейс: Знание имени сетевого интерфейса (например,
enp0s3,eth0), который вы хотите настроить. Мы расскажем, как его найти.
Пошаговая настройка статического IP-адреса
Вот как настроить статический IP-адрес с помощью nmcli.
Шаг 1: Определите ваш сетевой интерфейс
Сначала вам нужно узнать имя сетевого интерфейса, который вы хотите настроить. Вы можете перечислить все активные сетевые устройства и их статусы с помощью nmcli device или nmcli device status:
nmcli device status
Пример вывода:
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected System enp0s3
lo loopback unmanaged --
В этом примере enp0s3 — наш Ethernet-интерфейс. Запомните имя вашего интерфейса.
Шаг 2: Создайте новый профиль сетевого подключения
Обычно хорошей практикой является создание нового профиля подключения для вашей статической IP-конфигурации, а не прямое изменение существующего, управляемого DHCP, особенно если вы хотите легко вернуться к предыдущим настройкам. Профиль подключения хранит все настройки для конкретного сетевого подключения.
Чтобы создать новый профиль Ethernet-подключения, используйте команду nmcli connection add. Укажите тип подключения, описательное имя подключения (con-name) и имя интерфейса (ifname).
sudo nmcli connection add type ethernet con-name my-static-eth ifname enp0s3
type ethernet: Указывает Ethernet-подключение.con-name my-static-eth: Присваивает имя этому новому профилю подключения. Выберите что-то описательное.ifname enp0s3: Привязывает этот профиль подключения к физическому сетевому интерфейсуenp0s3.
Альтернатива: Изменение существующего профиля
Если вы предпочитаете изменить существующее подключение (например, System enp0s3 из вывода nmcli device status), вы должны использовать nmcli connection modify с его существующим con-name.
sudo nmcli connection modify "System enp0s3" # замените на имя вашего подключения
Примечание: Для простоты и ясности это руководство предполагает, что вы создали новый профиль подключения с именем my-static-eth.
Шаг 3: Настройте параметры IPv4 (IP, шлюз, DNS)
Теперь давайте настроим статический IP-адрес, шлюз и DNS-серверы для нашего профиля подключения my-static-eth. Важно установить метод IPv4 в manual, чтобы отключить DHCP.
Установка IP-адреса и шлюза
Используйте свойства ipv4.addresses и ipv4.gateway. IP-адрес должен быть в нотации CIDR (например, 192.168.1.100/24).
sudo nmcli connection modify my-static-eth ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1
ipv4.addresses 192.168.1.100/24: Устанавливает статический IP-адрес192.168.1.100с маской подсети 24 бита (255.255.255.0).ipv4.gateway 192.168.1.1: Устанавливает шлюз по умолчанию для сети.
Установка DNS-серверов
Укажите один или несколько IP-адресов DNS-серверов. Разделяйте несколько адресов запятыми.
sudo nmcli connection modify my-static-eth ipv4.dns "1.1.1.1,8.8.8.8"
Если ваша организация использует внутренний DNS, используйте IP-адреса этих резолверов. Например, частный сервер может использовать 192.168.1.10 и 192.168.1.11.
Отключение DHCP для IPv4
Установите метод IPv4 в manual; в противном случае NetworkManager может все еще пытаться использовать DHCP для этого профиля.
sudo nmcli connection modify my-static-eth ipv4.method manual
Если сервер не должен использовать IPv6 на этом подключении, отключите его явно:
sudo nmcli connection modify my-static-eth ipv6.method disabled
Делайте это только в том случае, если ваша сеть не использует IPv6.
Шаг 4: Активируйте статический профиль
Поднимите новое подключение. Если вы работаете через SSH, выполняйте это из консольного доступа или запланируйте откат перед изменением активного интерфейса.
sudo nmcli connection up my-static-eth
Если старый DHCP-профиль все еще активен на том же интерфейсе, отключите его после подтверждения работы статического профиля:
sudo nmcli connection down "System enp0s3"
Замените "System enp0s3" на фактическое имя старого подключения из nmcli connection show.
Шаг 5: Проверьте адрес, маршрут и DNS
Проверьте активное подключение:
nmcli connection show --active
Подтвердите IP-адрес:
ip addr show enp0s3
Подтвердите маршрут по умолчанию:
ip route
Вы должны увидеть маршрут, похожий на:
default via 192.168.1.1 dev enp0s3
Проверьте настройки DNS, управляемые NetworkManager:
nmcli device show enp0s3 | grep DNS
Затем проверьте реальное подключение:
ping -c 3 192.168.1.1
ping -c 3 1.1.1.1
getent hosts example.com
Первая команда проверяет шлюз, вторая — исходящее IP-подключение, а третья — разрешение DNS.
Безопасные удаленные изменения
Изменения статического IP могут разорвать ваше SSH-соединение, если вы неправильно введете адрес или шлюз. Перед удаленным применением профиля держите открытой вторую сессию и рассмотрите возможность планирования отката:
sudo shutdown -r +5 "Перезагрузка для отката сети"
Если новый статический IP работает, отмените перезагрузку:
sudo shutdown -c
На системах, где перезагрузка неприемлема, создайте временное задание at или используйте консольный доступ вне полосы, чтобы вы могли восстановиться, если маршрут неправильный.
Вывод
Используйте профили подключений nmcli для постоянной настройки статического IP в RHEL и CentOS. Минимальный рабочий набор — ipv4.addresses, ipv4.gateway, ipv4.dns и ipv4.method manual; самый безопасный рабочий процесс — активировать профиль, проверить маршрут и поведение DNS, затем удалить или отключить старый DHCP-профиль только после того, как сервер станет доступен по новому адресу.