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

The Host Banner

Во многих административных задачах возникает необходимость назначить серверу несколько IP-адресов — будь то для прокси-сервисов, виртуального хостинга или выделенных приложений. Эта статья поможет корректно настроить дополнительные IP-адреса на Linux (Ubuntu, Debian, CentOS, RHEL, AlmaLinux, RockyLinux) и Windows Server 2022.

Полезные кейсы

  • Необходима изоляция проектов по IP
  • Один сервер обслуживает несколько SSL-сайтов
  • Настраиваются сервисы с ограничением доступа по IP (например, почта, VPN)
  • Виртуализация или контейнеризация

Системные требования

Переменные, которые нужно заменить

  • <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> — шлюз по умолчанию для IPv4.
  • <IPV6_GATEWAY> — шлюз по умолчанию для IPv6.
  • <GATEWAY_IP> — шлюз, указываемый при добавлении IP в Windows PowerShell.
  • <DNS_1> / <DNS_2> — адреса DNS-серверов для IPv4.
  • <DNS6_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>/64 dev <INTERFACE>

Обратите внимание: замените <ADDITIONAL_IPV6>, /64 и <INTERFACE> на ваши значения.

Ubuntu/Debian

Для определения типа конфигурации используем команду.

dpkg -l | grep ii | awk '{print $2}' | grep ifupdown | wc -l

Данная команда вернёт 1 - Если используется ifupdown, вернёт 0 - Если нет.

Проверим текущие сетевые интерфейсы:

ip addr show

Вывод покажет интерфейсы, например eth0, ens3, ens160.

ip_addr_show

Добавление IP через ifupdown

Откройте файл конфигурации:

sudo nano /etc/network/interfaces

Пример с добавлением второго IP:

/etc/network/interfaces
# Основной интерфейс 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 64
    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

nmcli_status

Добавление IP на постоянной основе:

nmcli con mod <INTERFACE> +ipv4.addresses <ADDITIONAL_IP>
nmcli con up <INTERFACE>

nmcli_con

Проверка:

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"}

ps_get-net

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

Get-NetAdapter

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>"

get-Net

Добавление IP через интерфейс

  1. Откройте «Пуск» → «Параметры» → «Сеть и Интернет»

windows interface_1

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

windows interface_2

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

windows interface_3

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

windows interface_4

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

windows interface_5

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

windows interface_6

Проверка работы

Внимание: команды для проверки пинга (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