6.1.9 Работа с дополнительными IP-адресами в Linux и Windows Server

Во многих административных задачах возникает необходимость назначить серверу несколько IP-адресов — будь то для прокси-сервисов, виртуального хостинга или выделенных приложений. Эта статья поможет корректно настроить дополнительные IP-адреса на Linux (Ubuntu, Debian, CentOS, RHEL, AlmaLinux, RockyLinux) и Windows Server 2022.
Полезные кейсы
- Необходима изоляция проектов по IP
- Один сервер обслуживает несколько SSL-сайтов
- Настраиваются сервисы с ограничением доступа по IP (например, почта, VPN)
- Виртуализация или контейнеризация
Системные требования
- Виртуальный или Выделенный сервер
- ОС: Linux, Windows
- Root-доступ или права администратора в Windows
Переменные, которые нужно заменить
ADDITIONAL_IP— дополнительный IPv4-адрес сервераADDITIONAL_IPV6— дополнительный IPv6-адрес сервераINTERFACE— имя сетевого интерфейса в Linux (eth0,ens3,ens160и т.д.)INTERFACE_ALIAS— псевдоним сетевого адаптера в Windows (значение изGet-NetAdapter)YOUR_MAIN_IP/MAIN_IP— основной IPv4-адрес сервераYOUR_IPV6— основной IPv6-адрес сервераNETMASK— маска подсети для IPv4 (например255.255.255.0)/128— префикс IPv6-подсети (оставьте128, если у провайдера не указано иное)GATEWAY— шлюз по умолчанию для IPv4IPV6_GATEWAY— шлюз по умолчанию для IPv6GATEWAY_IP— шлюз, указываемый при добавлении IP в Windows PowerShellDNS_1/DNS_2— адреса DNS-серверов для IPv4DNS6_1/DNS6_2— адреса DNS-серверов для IPv6
Временное добавление IP в Linux
Для временного (до перезагрузки системы) добавления IP-адреса в системах Linux выполните следующую команду:
IPv4:
sudo ip addr add ADDITIONAL_IP dev INTERFACE
Обратите внимание: замените ADDITIONAL_IP на ваш дополнительный IP-адрес, а INTERFACE — на имя сетевого интерфейса.
IPv6:
sudo ip -6 addr add ADDITIONAL_IPV6/112 dev INTERFACE
Обратите внимание: замените ADDITIONAL_IPV6/112 и INTERFACE на ваши значения.
Ubuntu/Debian
Для определения типа конфигурации используем команду.
dpkg -l | grep ii | awk '{print $2}' | grep ifupdown | wc -l
Данная команда вернёт 1 - Если используется ifupdown, вернёт 0 - Если нет.
Проверим текущие сетевые интерфейсы:
ip addr show
Вывод покажет интерфейсы, например eth0, ens3, ens160.

Добавление IP через ifupdown
Откройте файл конфигурации:
sudo nano /etc/network/interfaces
Пример с добавлением второго IP:
# Основной интерфейс IPv4 + IPv6
auto eth0
iface eth0 inet static
address YOUR_MAIN_IP
netmask NETMASK
gateway GATEWAY
dns-nameservers DNS_1 DNS_2
iface eth0 inet6 static
address YOUR_IPV6
netmask 112
gateway IPV6_GATEWAY
dns-nameservers DNS6_1 DNS6_2
# Дополнительный IPv4-адрес (IP alias)
auto eth0:0
iface eth0:0 inet static
address ADDITIONAL_IP
netmask NETMASK
# Дополнительный IPv6-адрес (IP alias)
auto eth0:0
iface eth0:0 inet6 static
address ADDITIONAL_IPV6
netmask NETMASK
- eth0 — основной интерфейс
- eth0:0 — виртуальный интерфейс (alias), добавляющий IP
Обратите внимание: для получения значений address, netmask, gateway, dns-nameservers обратитесь в службу поддержки.
Примените изменения:
sudo systemctl restart networking
Теперь IP-адрес будет сохраняться после перезагрузки.
Добавление IP-адресов с помощью Netplan
Файл для настройки IP находится в каталоге /etc/netplan/. Имя файла может быть любым, но должно иметь расширение yaml. Просто перечислите IP-адреса, которые вы хотите добавить, после основного IP:
network:
version: 2
renderer: networkd
ethernets:
ens9:
dhcp4: false
addresses:
- MAIN_IP # Ваш основний IP
- ADDITIONAL_IP # Додатковий IP
После добавления дополнительного IP-адреса выполните следующую команду, чтобы попытаться применить конфигурацию к уже запущенной системе т будет ждать Вашего подтверждения (120 с по умолчанию) и автоматически откатывает изменения, если вы не подтвердили их нажатием Enter.
sudo netplan try
Команда же sudo net apply сразу применяет их без возможности автоматического отката.
CentOS/RHEL/AlmaLinux/RockyLinux
Для начала необходимо определить текущий метод конфигурации IP. Для этого выполните одну из следующих команд:
systemctl status NetworkManager
Если вы видите Active: active (running), это означает, что NetworkManager запущен и используется в вашей системе.
Выполните следующую команду, чтобы проверить, какие именно интерфейсы обслуживаются NetworkManager’ом:
nmcli device status
Чтобы проверить, что вы используете Network Scripts, выполните команду:
systemctl status network
NetworkManager
Для систем на базе CentOS используйте утилиту nmcli.
Проверим интерфейсы:
nmcli device status

Добавление IP на постоянной основе:
nmcli con mod INTERFACE +ipv4.addresses ADDITIONAL_IP
nmcli con up INTERFACE

Проверка:
ip a
Network Scripts
Добавление IP через network-scripts.
Перейдите в каталог конфигураций:
cd /etc/sysconfig/network-scripts/
Найдите файл ifcfg-eth0 (основной интерфейс), затем создайте alias:
cp ifcfg-eth0 ifcfg-eth0:0
Измените содержимое:
DEVICE=eth0:0
BOOTPROTO=static
ONBOOT=yes
IPADDR=ADDITIONAL_IP
NETMASK=NETMASK
Обратите внимание: необходимо заменить ADDITIONAL_IP, NETMASK на свои значения.
Важно: перезапустите сетевой стек:
systemctl restart network
или:
ifdown eth0:0 ; ifup eth0:0
Windows Server
Проверка IP-адресов через PowerShell:
Get-NetIPAddress | Where-Object {$_.AddressFamily -eq "IPv4"}

Проверим название интерфейса:
Get-NetAdapter

Добавление IP через PowerShell
New-NetIPAddress -InterfaceAlias "INTERFACE_ALIAS" -IPAddress "ADDITIONAL_IP" -PrefixLength 32 -DefaultGateway "GATEWAY_IP"
Обратите внимание: необходимо указать INTERFACE_ALIAS, ADDITIONAL_IP, GATEWAY_IP согласно вашей конфигурации.
Проверка результата:
Get-NetIPAddress -InterfaceAlias "INTERFACE_ALIAS"

Добавление IP через интерфейс
- Откройте «Пуск» → «Параметры» → «Сеть и Интернет»

- В разделе «Статус» нажмите «Изменение параметров адаптера»

- Кликните правой кнопкой по нужному адаптеру → «Свойства»

- Выберите IPv4 → «Свойства» → «Дополнительно»

- Нажмите «Добавить…»

- Введите дополнительный IP и маску подсети → «Добавить»

Проверка работы
Внимание: команды для проверки пинга (ping) нужно выполнять не на тех устройствах, где происходит добавление IP.
Linux:
ping -c 4 ADDITIONAL_IP
Windows:
ping ADDITIONAL_IP
Если IP отвечает на ping — всё настроено корректно.
Распространённые проблемы
| Проблема | Причина | Решение |
|---|---|---|
| IP исчез после перезагрузки | IP добавлен временно | Добавьте IP в Netplan (Linux) или сохраните через PowerShell (Windows) |
| Нет трафика с/на дополнительный IP | Фаервол блокирует трафик | Настройте UFW или Windows Firewall на нужные порты и IP |
| Некорректная маршрутизация | Неверно указан шлюз или префикс | Проверьте gateway, netmask и prefix length |


