Дополнительный интерфейс с адресом
Если к серверу подключён дополнительный сетевой интерфейс с отдельным адресом, его нужно один раз настроить внутри системы. Без настройки адрес не отвечает: ответы уходят через основной интерфейс.
Настройка ниже переживает перезагрузку. Проверена на Ubuntu 24.04, Debian 13 и AlmaLinux 9.
Что понадобится
- Имя интерфейса. Выполните
ip -br addr. Дополнительный интерфейс - второй в списке после основного:ens8на Ubuntu и Debian,eth1на AlmaLinux. - Адрес интерфейса - его выдала поддержка, он же виден в списке услуг.
- Шлюз - первый адрес подсети интерфейса. Например, для адреса
203.0.113.45/27шлюз -203.0.113.33.
В примерах ниже интерфейс ens8 (или eth1), адрес 203.0.113.45, шлюз 203.0.113.33 - подставьте свои.
Ubuntu и Debian
Создайте файл /etc/netplan/60-extra-interface.yaml:
network:
version: 2
ethernets:
ens8:
dhcp4: true
routes:
- to: 0.0.0.0/0
via: 203.0.113.33
table: 100
routing-policy:
- from: 203.0.113.45
table: 100Примените:
sudo chmod 600 /etc/netplan/60-extra-interface.yaml sudo netplan apply
AlmaLinux, Rocky Linux, CentOS Stream
CON=$(nmcli -g GENERAL.CONNECTION dev show eth1) sudo nmcli con mod "$CON" connection.autoconnect yes ipv4.method auto \ ipv4.routes "0.0.0.0/0 203.0.113.33 table=100" \ ipv4.routing-rules "priority 100 from 203.0.113.45 table 100" sudo nmcli con up "$CON"
Проверка
ip -br addr show ens8 # у интерфейса есть адрес ip rule | grep 100 # правило «from 203.0.113.45 lookup 100» curl --interface 203.0.113.45 https://ifconfig.me # ответ - ваш адрес
Снаружи сервер теперь отвечает и на этот адрес. Исходящие соединения по умолчанию идут через основной интерфейс; чтобы программа выходила с дополнительного адреса, укажите его в её настройках (адрес исходящих соединений, bind, --interface).
Частые вопросы
Подождите минуту и выполните sudo netplan apply (Ubuntu, Debian) или sudo nmcli con up "$CON" (AlmaLinux) ещё раз.
Правила доступа сервера в кабинете на этот интерфейс не действуют. Закрывайте лишние порты на самом сервере: ufw, firewalld или nftables.