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>
— шлюз по умолчанию для 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 через 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 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
Добавление 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 |