Хостинг

IP для каждого сайта свой. Битрикс виртуальная машина на CentOS9. Дополнительные сайты НЕ многосайтовость.

IP для каждого сайта свой. Битрикс виртуальная машина на CentOS9. Дополнительные сайты НЕ многосайтовость.

Для привязки дополнительного IP-адреса к сетевому интерфейсу на CentOS 9 (или другой современной версии RHEL-подобного дистрибутива) есть несколько способов. Опишу основные методы: 1. Временный способ (до перезагрузки): - Использование команды ip addr add 2. Постоянный способ: - Настройка через NetworkManager - Создание конфигурационных файлов для интерфейса - Использование NetworkManager CLI (nmcli) Дам инструкции для обоих вариантов, обращая внимание на то, что в CentOS 9 рекомендуется использовать NetworkManager для управления сетевыми интерфейсами.

Чтобы привязать дополнительный IP-адрес 5.129.206.111 к сетевому интерфейсу на CentOS 9, вы можете использовать один из следующих методов:

Метод 1: Временная привязка (действует до перезагрузки)

sudo ip addr add 5.129.206.001/32 dev eth0

Замените eth0 на имя вашего сетевого интерфейса, которое можно узнать с помощью команды ip a.

Метод 2: Постоянная привязка через NetworkManager (рекомендуется)

  • Определите имя вашего основного интерфейса:
ip a

Найдите активный интерфейс (обычно это eth0, ens192, ens160 или подобное).

  • Создайте новую конфигурацию для дополнительного IP:
sudo nmcli con add type ethernet con-name eth0:0 ifname eth0 ip4 5.129.206.001/32 gw 5.129.206.1

Замените eth0 на ваш интерфейс и 5.129.206.1 на соответствующий шлюз (узнать у провайдера).

  • Активируйте соединение:
sudo nmcli con up eth0:0

Метод 3: Создание конфигурационного файла

  • Создайте файл конфигурации для дополнительного IP:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
  • Добавьте следующее содержимое:
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=5.129.206.101
PREFIX=32
ONBOOT=yes
  • Перезапустите сетевую службу:
sudo systemctl restart NetworkManager

Проверка после привязки

После привязки IP-адреса проверьте, что он успешно добавлен:

ip addr show

Затем проверьте доступность этого IP-адреса извне (если есть такая возможность). Также после привязки не забудьте перезапустить Nginx:

sudo systemctl restart nginx

Примечание о маршрутизации

Если вы используете префикс маски /32, может потребоваться добавить маршрут для исходящего трафика:

sudo ip route add 5.129.206.101/32 dev eth0

Для постоянного добавления маршрута, создайте файл:

sudo vi /etc/sysconfig/network-scripts/route-eth0

С содержимым:

5.129.206.101/32 dev eth0

Ваш активный сетевой интерфейс - ens3. Это видно по следующим признакам:

  • Он имеет статус UP (активен)

  • На нем настроен внешний IP-адрес 100.70.93.222

  • Он имеет подключение к сети (BROADCAST,MULTICAST,UP,LOWER_UP)

Используйте этот интерфейс для привязки дополнительного IP-адреса. Вот команда:

sudo ip addr add 5.129.006.111/32 dev ens3

Для постоянной привязки используйте одно из указанных ранее решений, заменив eth0 на ens3. Например:

sudo nmcli con add type ethernet con-name ens3:0 ifname ens3 ip4 5.129.006.101/32

Или создайте файл конфигурации:

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens3:0

С содержимым:

DEVICE=ens3:0
BOOTPROTO=static
IPADDR=5.129.206.011
PREFIX=32
ONBOOT=yes

После применения настроек проверьте, что IP добавлен, выполнив снова ip a.

Чтобы найти информацию о шлюзе (gateway), вы можете использовать следующие команды:

1. Проверка текущего шлюза по умолчанию

ip route show default

или

route -n

Вывод будет примерно таким:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         103.74.90.1     0.0.0.0         UG    100    0        0 ens3

Здесь 103.74.93.1 - это ваш текущий шлюз по умолчанию.

2. Для дополнительного IP-адреса

Если дополнительный IP-адрес (5.129.206.111) предоставлен тем же провайдером, что и ваш основной IP, можно использовать один из следующих вариантов:

  • Использовать тот же шлюз, что и для основного IP (наиболее распространенный случай)

  • Использовать шлюз из той же подсети: обычно первый адрес в подсети, например 5.129.206.1

  • Уточнить у провайдера - самый надежный способ

В большинстве случаев для дополнительного IP-адреса из /32 подсети (единственный адрес) отдельный шлюз не требуется, так как маршрутизация происходит через основной интерфейс.

Если вы уже успешно привязали IP-адрес и он работает, то вероятно никаких дополнительных настроек шлюза не требуется.

Отлично! Теперь у нас есть информация о вашем шлюзе по умолчанию:

  • Шлюз: 103.74.93.1

  • Интерфейс: ens3

  • Основной IP: 103.74.93.222

Поскольку вы купили дополнительный IP у того же провайдера, скорее всего, для дополнительного IP (5.129.206.111) вы можете использовать тот же шлюз (103.74.93.1).

Если вы хотите создать постоянную конфигурацию для дополнительного IP с указанием шлюза, создайте файл конфигурации:

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens3:0

И добавьте следующее содержимое:

DEVICE=ens3:0
BOOTPROTO=static
IPADDR=5.129.206.111
PREFIX=32
GATEWAY=103.74.93.1
ONBOOT=yes

В вашем файле конфигурации сети есть серьезная проблема - вы используете одно и то же имя интерфейса ens3:0 для трех разных IP-адресов, что неправильно. Каждый виртуальный интерфейс должен иметь уникальное имя.

Исправленная версия файла должна выглядеть так:

# Created by cloud-init automatically, do not edit.
#
AUTOCONNECT_PRIORITY=222
BOOTPROTO=dhcp
DEVICE=ens3
DHCPV6C=yes
HWADDR=4e:27:dd:f0:b2:b8
IPV6INIT=yes
ONBOOT=yes
TYPE=Ethernet
USERCTL=no

DEVICE=ens3:0
BOOTPROTO=static
IPADDR=5.129.206.111
PREFIX=32
GATEWAY=103.74.93.1
ONBOOT=yes

DEVICE=ens3:1
BOOTPROTO=static
IPADDR=5.129.206.222
PREFIX=32
GATEWAY=103.74.93.1
ONBOOT=yes

DEVICE=ens3:2
BOOTPROTO=static
IPADDR=178.209.127.333
PREFIX=32
GATEWAY=103.74.93.1
ONBOOT=yes

Обратите внимание на изменения:

  • Для второго IP-адреса используется ens3:1 вместо ens3:0

  • Для третьего IP-адреса используется ens3:2 вместо ens3:0

Также стоит отметить, что использование маски подсети /32 (PREFIX=32) означает, что эти IP-адреса не могут взаимодействовать напрямую с другими устройствами в сети без использования шлюза. Убедитесь, что это именно то, что вам нужно.

///////////////////

Если же вам нужно настроить маршрутизацию только для этого IP через отдельный шлюз (маловероятно, но для полноты информации), вы можете добавить специфический маршрут:

sudo ip route add 5.129.206.111/32 via 103.74.93.1 dev ens3

Для постоянного добавления такого маршрута, создайте файл:

sudo vi /etc/sysconfig/network-scripts/route-ens3

С содержимым:

5.129.206.111/32 via 103.74.93.1 dev ens3

В большинстве случаев, однако, просто наличие IP-адреса на интерфейсе ens3 (как у вас уже настроено) достаточно для его корректной работы, и дополнительная настройка шлюза может не потребоваться.

Вывод sudo systemctl status NetworkManager (первая часть вашего ответа):

● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
Active: active (running) since Wed 2025-06-11 21:25:47 MSK; 1h 6min ago
Docs: man:NetworkManager(8)
Main PID: 714 (NetworkManager)
Tasks: 5 (limit: 48900)
Memory: 13.9M
CPU: 659ms
CGroup: /system.slice/NetworkManager.service
├─714 /usr/sbin/NetworkManager --no-daemon
├─776 /usr/sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /run/NetworkManager/dhclient-ens3.p>
└─926 /usr/sbin/dhclient -d -q -6 -N -sf /usr/libexec/nm-dhcp-helper -pf /run/NetworkManager/dhclient6>
... (логи dhcp)
  • NetworkManager.service активен (running) и включен (enabled). Это значит, что именно NetworkManager управляет вашей сетью, а не старый сервис network. Это хорошо и правильно для CentOS 9.

  • Видно, что NetworkManager запустил dhclient для IPv4 (dhclient-ens3.pid) и IPv6 (dhclient6-ens3.pid) для интерфейса ens3. Это соответствует BOOTPROTO=dhcp в ifcfg-ens3.

Вывод sudo nmcli device status (третья часть вашего ответа, после статуса NM):

DEVICE  TYPE      STATE         CONNECTION
ens3    ethernet  connected     ens3
lo      loopback  disconnected  --
  • ens3 имеет STATE connected и использует соединение (CONNECTION) с именем ens3. Это отлично.

Вывод sudo nmcli connection show (вторая часть вашего ответа, между статусом NM и статусом девайсов):

NAME         UUID                                  TYPE      DEVICE
ens3         00649495-3b54-4e16-bd43-262b6bc4f435  ethernet  ens3
System ens3  21d47e65-8523-1a06-af22-6f121086f085  ethernet  --
  • У вас есть два “профиля соединения” (connection profiles), которые относятся к ens3:

  • ens3: Это активное соединение, которое сейчас используется устройством ens3.

  • System ens3: Это соединение не активно на данный момент (колонка DEVICE пуста --). Часто профили с префиксом “System” создаются NetworkManager, когда он читает старые ifcfg- файлы.

Ключевой момент: Активное соединение называется ens3. Именно к этому соединению должны быть “привязаны” ваши дополнительные IP-адреса, чтобы они заработали.

Файлы ifcfg-ens3:0, ifcfg-ens3:1, ifcfg-ens3:2 являются устаревшим способом настройки IP-алиасов. NetworkManager может их читать (через плагин ifcfg-rh), но это не всегда надежно, и он предпочитает, чтобы все IP-адреса для одного физического интерфейса были частью одного профиля соединения.

Что сейчас нужно сделать (План А - модификация ifcfg файлов, План Б - прямой nmcli):

План А: Попытка заставить NetworkManager правильно прочитать ifcfg-алиасы (после исправления)

  • Убедитесь, что файлы ifcfg-ens3:X существуют и исправлены: Как мы обсуждали ранее, зайдите в каждый из файлов (или в соответствующие секции ifcfg-ens3, если они там):

  • /etc/sysconfig/network-scripts/ifcfg-ens3:0

  • /etc/sysconfig/network-scripts/ifcfg-ens3:1

  • /etc/sysconfig/network-scripts/ifcfg-ens3:2 Удалите или закомментируйте (#) строку GATEWAY=... в каждом из этих файлов/секций. Шлюз не нужен для алиасов с /32.

  • Перезагрузите конфигурацию NetworkManager и переактивируйте соединение:

bash Скопировать

Закрыть блок

sudo nmcli connection reload
sudo nmcli connection down ens3
sudo nmcli connection up ens3

(Если nmcli connection down ens3 выдает ошибку, что соединение ens3 не найдено, попробуйте имя из nmcli con show, которое активно, но в вашем случае это и есть ens3).

  • Проверьте результат:

bash Скопировать

Закрыть блок

ip addr show ens3

Появились ли дополнительные IP-адреса? Если да, отлично! Если нет, переходим к Плану Б.

План Б: Настройка дополнительных IP напрямую через nmcli (рекомендуемый способ для CentOS 9+)

Этот способ более надежен, так как мы работаем напрямую с инструментами NetworkManager.

  • Удалите (или переименуйте) старые файлы ifcfg-ens3:X (если они существуют как отдельные файлы), чтобы они не мешали:

bash Скопировать

Закрыть блок

sudo mv /etc/sysconfig/network-scripts/ifcfg-ens3:0 /etc/sysconfig/network-scripts/ifcfg-ens3:0.bak
sudo mv /etc/sysconfig/network-scripts/ifcfg-ens3:1 /etc/sysconfig/network-scripts/ifcfg-ens3:1.bak
sudo mv /etc/sysconfig/network-scripts/ifcfg-ens3:2 /etc/sysconfig/network-scripts/ifcfg-ens3:2.bak

Если эти конфигурации были внутри основного файла ifcfg-ens3, то закомментируйте или удалите эти секции из ifcfg-ens3 (предварительно сделав его бэкап). После этого выполните:

bash Скопировать

Закрыть блок

sudo nmcli connection reload
  • Добавьте IP-адреса к активному соединению ens3: Имя вашего активного соединения для устройства ens3 — это ens3.

bash Скопировать

Закрыть блок

sudo nmcli connection modify ens3 +ipv4.addresses 5.129.206.100/32
sudo nmcli connection modify ens3 +ipv4.addresses 5.129.206.200/32
sudo nmcli connection modify ens3 +ipv4.addresses 178.209.127.100/32
  • modify ens3: изменяем соединение с именем ens3.

  • +ipv4.addresses: добавляем IPv4 адрес. Знак + означает добавление к существующим, а не замену.

  • IP_ADDRESS/32: Указываем IP и его префикс (маску). /32 означает, что это одиночный хост-адрес.

  • Проверьте, что IP-адреса добавились в конфигурацию соединения:

bash Скопировать

Закрыть блок

nmcli connection show ens3

Прокрутите вывод и найдите секцию ipv4.addresses. Там должны быть все ваши IP (основной DHCP и три добавленных статических).

  • Переактивируйте соединение, чтобы изменения применились:

bash Скопировать

Закрыть блок

sudo nmcli connection down ens3
sudo nmcli connection up ens3
  • Финальная проверка:

bash Скопировать

Закрыть блок

ip addr show ens3

Все IP-адреса (основной, полученный по DHCP, и три дополнительных) должны теперь отображаться.

Важно по поводу cloud-init: Поскольку в вашем ifcfg-ens3 есть комментарий # Created by cloud-init automatically, do not edit., есть небольшой риск, что cloud-init при каких-то обстоятельствах (например, если он настроен на повторный запуск при определенных условиях) может попытаться вернуть ifcfg-ens3 к исходному состоянию. Однако, когда вы управляете IP-адресами через nmcli connection modify, вы изменяете профиль NetworkManager. Эти изменения обычно более устойчивы к действиям cloud-init после первой загрузки, особенно если cloud-init настроен только на начальную инициализацию.

Рекомендую начать с Плана А (шаги 1-3). Если не сработает, переходите к Плану Б. План Б – это более “чистый” и современный способ для систем с NetworkManager.

Да, для CentOS 9 План Б (настройка через nmcli) является более правильным и предпочтительным методом.

Причины:

  • NetworkManager – стандарт по умолчанию: CentOS 9 (и другие современные дистрибутивы на базе RHEL, такие как AlmaLinux, Rocky Linux) используют NetworkManager как основную службу для управления сетевыми настройками. nmcli – это официальный инструмент командной строки для взаимодействия с NetworkManager.

  • Устаревание ifcfg скриптов: Хотя NetworkManager все еще может читать файлы ifcfg-* (через плагин ifcfg-rh), поддержка этого формата постепенно сокращается, и он считается устаревшим. Новые возможности и более тонкая настройка лучше всего реализуются через “родные” механизмы NetworkManager.

  • Централизованное управление: nmcli позволяет управлять всеми аспектами сетевого соединения (IP-адреса, DNS, маршруты, Wi-Fi, VPN и т.д.) из одного места и одним инструментом. Использование ifcfg файлов для алиасов (например, ifcfg-ens3:0) рядом с основным файлом ifcfg-ens3, управляемым через DHCP, может приводить к путанице и потенциальным конфликтам.

  • Надежность и предсказуемость: Изменения, внесенные через nmcli, напрямую записываются в конфигурационные файлы NetworkManager (обычно в /etc/NetworkManager/system-connections/), и их применение более предсказуемо.

  • Совместимость с cloud-init: cloud-init при первой настройке может создавать ifcfg файлы, но дальнейшее управление через nmcli обычно не вызывает конфликтов, так как nmcli модифицирует профили NetworkManager, которые являются “вышестоящим” уровнем конфигурации.

Итак, для CentOS 9 правильнее и надежнее использовать План Б:

План Б: Настройка дополнительных IP напрямую через nmcli

  • (Опционально, но рекомендуется для чистоты) Удалите или переименуйте старые файлы ifcfg-ens3:X (если они существуют как отдельные файлы):
sudo mv /etc/sysconfig/network-scripts/ifcfg-ens3:0 /etc/sysconfig/network-scripts/ifcfg-ens3:0.bak
sudo mv /etc/sysconfig/network-scripts/ifcfg-ens3:1 /etc/sysconfig/network-scripts/ifcfg-ens3:1.bak
sudo mv /etc/sysconfig/network-scripts/ifcfg-ens3:2 /etc/sysconfig/network-scripts/ifcfg-ens3:2.bak

Если эти конфигурации были частью основного файла ifcfg-ens3, закомментируйте или удалите эти секции из ifcfg-ens3 (предварительно сделав его бэкап: sudo cp /etc/sysconfig/network-scripts/ifcfg-ens3 /etc/sysconfig/network-scripts/ifcfg-ens3.backup_$(date +%F)). Затем перезагрузите конфигурацию, чтобы NetworkManager “забыл” про эти файлы:

sudo nmcli connection reload
  • Добавьте IP-адреса к активному соединению ens3: Имя вашего активного соединения для устройства ens3 — это ens3 (как показал nmcli con show).
sudo nmcli connection modify ens3 +ipv4.addresses 5.129.206.100/32
sudo nmcli connection modify ens3 +ipv4.addresses 5.129.206.200/32
sudo nmcli connection modify ens3 +ipv4.addresses 178.209.127.100/32
  • Если вы хотите заменить все статические адреса, а не добавить, используйте ipv4.addresses без +: sudo nmcli connection modify ens3 ipv4.addresses "5.129.206.151/32 5.129.206.201/32 178.209.127.150/32" Но поскольку у вас основной IP получается по DHCP, использование +ipv4.addresses безопаснее, чтобы не затронуть DHCP-конфигурацию.

  • Проверьте, что IP-адреса добавились в конфигурацию соединения:

nmcli connection show ens3

Ищите параметр ipv4.addresses:. Он должен содержать список IP-адресов.

  • Переактивируйте соединение, чтобы изменения применились:
sudo nmcli connection down ens3
sudo nmcli connection up ens3

Или, как альтернатива, можно просто перезапустить NetworkManager, но переактивация соединения более “мягкая”: sudo systemctl restart NetworkManager (менее предпочтительно, если можно обойтись)

  • Финальная проверка:
ip addr show ens3

Все IP-адреса (основной, полученный по DHCP, и три дополнительных) должны теперь отображаться. Также проверьте доступность сайтов на этих IP.

Этот подход обеспечит корректную и устойчивую конфигурацию сети на вашей CentOS 9.


Ищете надежного партнера по веб-разработке и автоматизации? Мы помогаем бизнесу расти с помощью современных технологий, автоматизации процессов и экспертного SEO. Свяжитесь с нами, чтобы обсудить вашу задачу.

🚀 Нужна помощь с сайтом на 1С-Битрикс или Аспро?

Я работаю удалённо по всей России и СНГ. Узнайте цены и условия для вашего города:

Все регионы →