Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
61c46507-12c7-4300-a301-bd8bc30c7c19
Инструкции для серверов

Добавление дополнительного IP

Это инструкция для серверов с операционными системами Linux. Если вы используете сервер с ОС Windows, воспользуйтесь этой статьей.

Чтобы добавить на сервер дополнительный IP-адрес, сначала его необходимо добавить в панели управления, после чего настроить внутри сервера — по инструкции ниже.

По этой же инструкции вы можете настроить статический адрес для сервера; в этом случае при настройке вместо дополнительного IP указывайте основной IP-адрес сервера.

В качестве примера в этой инструкции мы будем использовать адреса:

  • 192.0.2.70

  • 198.51.100.12

  • 2001:db8:a:a::a

  • 2001:db8:b:b::b

Кроме самих адресов также потребуется указать маску сети, шлюз и название интерфейса.

  • Маска сети. Для IPv4-адресов указывайте /24, а для IPv6 — /128 (или /64). В статье мы будем использовать 192.0.2.70/24 и 2001:db8:a:a::a/128.

  • Шлюз. Это первый адрес в сети, достаточно поменять последнее число IP-адреса (октет или хекстет) на 1. Подойдет шлюз любого из ваших адресов. Например, 192.0.2.1 и 2001:db8:a:a::1.

  • Интерфейс. В зависимости от дистрибутива название интерфейса будет отличаться. Например, это могут быть eth0 или ens3. Проверить имя интерфейса на своем сервере можно командой ip addr

Чтобы настроить IP-адрес на сервере, подключитесь к нему по SSH. В статье будут указаны команды, которые нужно выполнить в консоли. 

Если во время настройки что-то пойдет не так и на сервере пропадет интернет, вы не сможете подключиться к нему удаленно по SSH. В этом случае вы можете использовать консоль в панели управления — продолжить настройку в ней или временно настроить интернет утилитой ip.

Временная настройка

Если вам нужно настроить сеть временно, вы можете использовать утилиту ip. Все изменения пропадут после перезагрузки сервера.

Проверьте, какие адреса уже добавлены на интерфейс:

    

Добавьте нужные адреса командой ниже, указав верное значение IP. Для IPv4:

    

Для IPv6:

    

Проверьте, какой IPv4-адрес указан в качестве шлюза по умолчанию:

    

Посмотреть шлюз для IPv6 можно так:

    

Если шлюза нет, добавьте его этой командой:

    

Для IPv6:

    

Постоянная настройка

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

Ubuntu использует netplan для сетевых настроек, все конфигурационные файлы находятся в /etc/netplan/ и называются произвольно. Своим файлам вы тоже можете выбрать произвольные названия, но они должны иметь расширение .yaml.

В файлах формата YAML важно выставлять одинаковые отступы пробелами, табуляция не допускается. С помощью отступов вы указываете вложенность конфигурации, например, что настройка маршрутов routes вложена в настройки интерфейса eth0.

После выполнения этой инструкции у вас будет два файла: для IPv4 и IPv6. Вы можете держать их вместе одновременно без конфликтов, потому что netplan объединит их в одну конфигурацию.

Посмотреть на объединенную конфигурацию можно этой командой:

    

Вот пример вывода команды, который получится, если следовать каждому пункту в этой инструкции:

    

В этой конфигурации название интерфейса eth0 на некоторых версиях Ubuntu придется поменять. Проверьте имя интерфейса на своем сервере этой командой:

    

Настройка IPv4 в Ubuntu

Создайте файл /etc/netplan/99-ipv4.yaml:

    

Скопируйте эти строки, заменив адреса (addresses) и шлюз (via) на нужные значения:

    

Закройте права на чтение этого файла всем, кроме root:

    

Настройка IPv6 в Ubuntu

Создайте файл /etc/netplan/99-ipv6.yaml:

    

Скопируйте эти строки, заменив адреса (addresses) и шлюз (via) на нужные значения:

    

Закройте права на чтение этого файла всем, кроме root:

    

Отключите dhclient6 из автозагрузки:

    

Так как служба systemd-networkd тоже вызывает dhclient6 при запуске сервера, нужно отредактировать файл сервиса:

  • На Ubuntu 20.04, 22.04 и 24.04 откройте /usr/lib/systemd/system/systemd-networkd.service

  • На Ubuntu 18.04 откройте /lib/systemd/system/systemd-networkd.service

    

Закомментируйте эту строку, чтобы dhclient6 не вызывался при каждом старте сервера:

    

В Debian 12 необходимо закомментировать строку:

    

Примените конфиг systemd:

    

Отключение прошлых настроек в Ubuntu

Проверьте директорию /etc/netplan/, в ней могут быть другие настройки интерфейсов, которые будут конфликтовать с вашими. На чистой установке будет файл 50-cloud-init.yaml, остальные можно проверить этой командой:

    

Переименуйте файл /etc/netplan/50-cloud-init.yaml, главное — чтобы он не заканчивался на .yaml:

    

Повторите это со всеми файлами, кроме 99-ipv4.yaml и 99-ipv6.yaml, если они есть.

В старых версиях Ubuntu также могут быть файлы 01-netcfg.yaml или 00-installer-config.yaml, их тоже нужно переименовать:

    

Чтобы cloud-init больше не создавал свой файл после перезагрузки сервера, создайте файл /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg:

    

И пропишите в нем эту строку:

    

Прослушивание адреса в Ubuntu

После перезагрузки сервера адрес может не успеть добавиться, когда другие службы захотят его прослушивать. Поэтому разрешаем bind на адреса, которых нет на интерфейсе.

Откройте файл /etc/sysctl.conf:

    

Допишите в него эти строки:

    

Перезагрузите конфигурацию sysctl:

    

Применение настроек в Ubuntu

Примените конфиг netplan:

    

Проверьте, что адреса добавились на интерфейс:

    

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

 

Была ли статья полезна?
Ваша оценка очень важна