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