Как добавить IP-адрес в Linux: привязка дополнительного IPv4 в Ubuntu, Debian, CentOS и Rocky Linux

15 мин чтения 3 просмотров 0
Содержание

Если вы заказали дополнительные адреса для облачного сервера JUSTG или блок /24 для выделенного сервера в Йоханнесбурге или Москве, нужно добавить IP-адрес в Linux, иначе он не будет отвечать на трафик. В инструкции показано, как временно привязать дополнительный IPv4 командой ip addr add, как сохранить настройку через netplan в Ubuntu, /etc/network/interfaces в Debian и nmcli в CentOS/Rocky/AlmaLinux, как настроить маршрутизацию по источнику для IP из другой подсети и как привязать целый /24 простым циклом. В примерах используются документационные адреса; замените их на IP, префикс и шлюз, указанные для вашей услуги в личном кабинете.

Ошибка в сетевых настройках может оборвать SSH-сессию. Держите под рукой консоль VNC или IPMI из личного кабинета (личный кабинет → Мои продукты и услуги → выберите сервер → Управление / Панель управления; если не нашли — создайте тикет) и привязывайте только выделенные вам адреса.

Шаг 1: Узнайте имя интерфейса и текущие IP

Краткий режим ip показывает каждый интерфейс и его адреса. Запомните интерфейс с основным IP (часто eth0, ens3 или enp1s0) и шлюз по умолчанию.

ip -br a
ip route show default

Шаг 2: Временно добавьте IP командой ip addr add (для проверки)

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

# add the extra IPv4 (not persistent, lost after reboot)
ip addr add 203.0.113.11/24 dev eth0

# confirm and test outgoing traffic from the new address
ip -br a show eth0
ping -c 3 -I 203.0.113.11 1.1.1.1

# remove it again if needed
ip addr del 203.0.113.11/24 dev eth0

Если ping с нового адреса-источника проходит, IP правильно маршрутизирован на ваш сервер и его можно закрепить на постоянной основе.

Шаг 3: Постоянный дополнительный IP через netplan в Ubuntu

Ubuntu хранит сетевые настройки в YAML-файлах в /etc/netplan/. Добавьте новый адрес в список addresses интерфейса. Отступы — только пробелами.

# /etc/netplan/50-cloud-init.yaml (the file name may differ)
network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 203.0.113.10/24
        - 203.0.113.11/24
      routes:
        - to: default
          via: 203.0.113.1
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]
netplan try      # rolls back automatically if you lose access and do not confirm
netplan apply

Если сервер развернут через cloud-init и изменения перезаписываются после перезагрузки, отключите управление сетью в cloud-init:

echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

Шаг 4: Добавление IP в Debian через /etc/network/interfaces

Debian с ifupdown допускает несколько блоков iface для одного интерфейса; каждый дополнительный блок добавляет один адрес.

# /etc/network/interfaces
auto eth0
iface eth0 inet static
    address 203.0.113.10/24
    gateway 203.0.113.1

iface eth0 inet static
    address 203.0.113.11/24

Примените изменения из консоли VNC или просто перезагрузите сервер в окно обслуживания:

systemctl restart networking

Шаг 5: Добавление IP в CentOS, Rocky Linux и AlmaLinux через nmcli

Эти системы используют NetworkManager. Имя подключения может быть System eth0, eth0 или Wired connection 1, поэтому сначала выведите список. Префикс + добавляет адрес, а не заменяет основной.

nmcli con show                       # find the connection name
nmcli con mod "System eth0" +ipv4.addresses 203.0.113.11/24
nmcli con up "System eth0"
nmcli -g ipv4.addresses con show "System eth0"

Затем выполните ip -br a и убедитесь, что на интерфейсе есть оба адреса.

Шаг 6: Маршрутизация по источнику для IP из разных подсетей

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

# extra IP 198.51.100.10 with its own gateway 198.51.100.1
ip addr add 198.51.100.10/24 dev eth0
ip route add default via 198.51.100.1 dev eth0 table 100
ip rule add from 198.51.100.10 table 100
ip rule show

Чтобы настройка сохранялась после перезагрузки, используйте эквивалентную постоянную конфигурацию:

# netplan: add under eth0
      routes:
        - to: default
          via: 203.0.113.1
        - to: default
          via: 198.51.100.1
          table: 100
      routing-policy:
        - from: 198.51.100.10
          table: 100

# nmcli (CentOS / Rocky / AlmaLinux)
nmcli con mod "System eth0" +ipv4.routes "0.0.0.0/0 198.51.100.1 table=100" \
  +ipv4.routing-rules "priority 100 from 198.51.100.10 table 100"
nmcli con up "System eth0"
Если дополнительный блок маршрутизируется на ваш основной IP и отдельного шлюза нет, policy routing не нужен — добавьте адреса с префиксом /32.

Шаг 7: Привязка целого /24 на выделенном сервере JUSTG

В подсети /24 256 адресов. Уточните шлюз и диапазон пригодных адресов в данных о выделении; в примере ниже .1 — шлюз, .2–.254 — рабочие адреса. Для проверки добавьте все адреса циклом:

# example: 198.51.100.0/24, gateway 198.51.100.1, usable .2 - .254
for i in $(seq 2 254); do
  ip addr add 198.51.100.$i/24 dev eth0
done
ip -4 -o addr show dev eth0 | wc -l

Для постоянной настройки сгенерируйте конфигурацию, а не вводите 253 строки вручную:

# Ubuntu (netplan): print the address lines, then paste them under "addresses:"
for i in $(seq 2 254); do echo "        - 198.51.100.$i/24"; done

# Debian (/etc/network/interfaces): one line inside the eth0 stanza
    up for i in $(seq 2 254); do ip addr add 198.51.100.$i/24 dev eth0; done

# CentOS / Rocky / AlmaLinux (NetworkManager)
ADDRS=$(for i in $(seq 2 254); do printf "198.51.100.%s/24," "$i"; done)
nmcli con mod "System eth0" +ipv4.addresses "${ADDRS%,}"
nmcli con up "System eth0"

После перезагрузки посчитайте адреса командой ip -4 -o addr show dev eth0 | wc -l и убедитесь, что все они на месте.

Частые вопросы

Как получить больше IPv4 для VPS?

Каждый облачный сервер JUSTG включает один IPv4. Дополнительные IPv4 заказываются через опции апгрейда в личном кабинете, а IPv6 доступен на всех облачных серверах бесплатно.

Новый IP виден в ip -br a, но недоступен снаружи. Что проверить?

Сверьте префикс и шлюз с данными о выделении, проверьте, что файрвол разрешает сервис на этом адресе, и протестируйте ping -I. Если не помогло, возможно, IP еще не маршрутизирован на ваш сервер.

Какой адрес сервер использует для исходящих соединений?

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

Если проблему решить не удалось, создайте тикет в техническую поддержку JUSTG и приложите данные о выделенных IP и вывод ip -br a.

Помог ли вам данный ответ?