Иногда серверу нужно ходить в интернет с двух разных адресов: например, часть запросов к внешнему API отправлять с одного IP, а часть — с другого, или разделить по адресам рассылку и остальной трафик. На сервере Fatmetal это делается без второго сервера: второй адрес даёт частная сеть.

Проброс портов для этого не подходит: он работает только для входящих соединений.

Инструкция проверена 05.11.2026 на Ubuntu 24.04 в зоне ryazan-2, в том числе после перезагрузки сервера.

Как это устроено

  • Первый адрес — внешний IP самого сервера. С него по умолчанию идут все исходящие соединения.
  • Второй адрес — публичный адрес частной сети. С него уходят соединения, привязанные к внутреннему адресу сервера в этой сети.

1. Подключите сервер к частной сети

В личном кабинете, в разделе «Частные сети», создайте сеть в зоне вашего сервера и подключите к ней сервер кнопкой «Подключить сервер». Сеть — отдельная услуга, цена указана в кабинете. Частные сети есть не во всех зонах: в ryazan-2 есть.

Публичный адрес сети указан на её странице. Внутренний адрес сервера в сети — в таблице «Серверы» на той же странице.

Если интерфейс частной сети на сервере не поднялся сам (в выводе ip -br a он выключен), включите на нём получение адреса по DHCP.

2. Настройте маршрут для второго адреса

Создайте файл /etc/netplan/60-second-ip.yaml:

network:
  version: 2
  ethernets:
    ens4:
      dhcp4: true
      routes:
        - to: default
          via: 10.1.1.1
          table: 100
      routing-policy:
        - from: 10.1.1.189
          table: 100

Подставьте свои значения:

В примере Что это Где взять
ens4 интерфейс частной сети ip -br a — интерфейс с внутренним адресом сети
10.1.1.1 шлюз сети первый адрес диапазона сети
10.1.1.189 внутренний адрес сервера в сети страница сети в кабинете

Примените:

sudo chmod 600 /etc/netplan/60-second-ip.yaml
sudo netplan apply

Настройка сохраняется после перезагрузки.

Чтобы сначала проверить без записи в файл (действует до перезагрузки):

sudo ip route replace default via 10.1.1.1 dev ens4 table 100
sudo ip rule add from 10.1.1.189 table 100

3. Выберите адрес в задачах

  • По умолчанию соединения идут с внешнего IP сервера.
  • Чтобы выйти с адреса сети, привяжите соединение к внутреннему адресу сервера в сети: curl --interface 10.1.1.189 … или параметр bind / source address в настройках приложения.

Проверка

curl -4 ifconfig.me                       # внешний IP сервера
curl --interface 10.1.1.189 ifconfig.me   # публичный адрес сети

Первая команда покажет IP сервера, вторая — публичный адрес частной сети.

Ограничения

  • Инструкция для систем с netplan — Ubuntu и Debian из наших образов. На AlmaLinux и Rocky Linux сетью управляет NetworkManager, там настройка другая, и этот вариант не проверялся.
  • Входящие соединения на адрес сети приходят только через проброс портов этой сети.