Start typing to search across invoices, services, domains, tickets, and more...
Серверы для сетей сайтов (мульти-IP) обычно поставляются с одним или несколькими блоками /24 — это 253+ рабочих адреса в каждом. Добавлять их вручную долго и чревато ошибками. В статье показано, как привязать целый блок /24 IP на Linux-сервере для сети сайтов: быстро через цикл, постоянно через Netplan или NetworkManager, автоматически при загрузке через systemd, а также как проверить всё разом. Подходит для Ubuntu, Debian и CentOS/Rocky/AlmaLinux.
Проверьте основной интерфейс и маршрут по умолчанию; ниже он обозначен как eth0:
ip -br addr show
ip route show defaultОдин цикл for привязывает весь блок — удобно для проверки. После перезагрузки настройка пропадёт:
for i in $(seq 2 254); do
ip addr add 203.0.113.$i/24 dev eth0
doneДобавляйте только адреса. Не задавайте отдельный шлюз по умолчанию для блока — иначе появится несколько маршрутов default.
Вписывать 253 строки вручную рискованно. Сгенерируйте строки YAML и вставьте их в раздел addresses файла в /etc/netplan/:
for i in $(seq 2 254); do echo " - 203.0.113.$i/24"; doneВ итоге структура будет такой:
network:
version: 2
ethernets:
eth0:
addresses:
- 198.51.100.5/24
- 203.0.113.2/24
- 203.0.113.3/24
# ... 203.0.113.254/24
routes:
- to: default
via: 198.51.100.1netplan try
netplan applyNetworkManager сохраняет адреса в профиле подключения и восстанавливает их при загрузке:
for i in $(seq 2 254); do
nmcli connection modify eth0 +ipv4.addresses 203.0.113.$i/24
done
nmcli connection up eth0Цикл может выполняться минуту-две — не прерывайте его.
Для Debian (ifupdown) или если не хотите менять сетевые конфиги, запускайте скрипт через systemd при загрузке. Создайте /usr/local/bin/bind-ips.sh:
#!/bin/bash
# /usr/local/bin/bind-ips.sh
DEV=eth0
NET=203.0.113
for i in $(seq 2 254); do
ip addr add ${NET}.${i}/24 dev ${DEV} 2>/dev/null
done
exit 0Затем создайте /etc/systemd/system/bind-ips.service:
[Unit]
Description=Bind extra IPv4 block
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/bind-ips.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.targetСделайте скрипт исполняемым и включите службу:
chmod +x /usr/local/bin/bind-ips.sh
systemctl daemon-reload
systemctl enable --now bind-ips.serviceВ системах под управлением nmcli лучше использовать шаг 4, чтобы NetworkManager не удалил добавленные скриптом адреса при повторной активации подключения.
Посчитайте привязанные адреса и выборочно проверьте исходящий трафик:
ip -4 addr show dev eth0 | grep -c "inet 203.0.113."
for i in 2 100 254; do curl -s --interface 203.0.113.$i https://ifconfig.me; echo; doneПервая команда должна вывести 253 (или ваше фактическое число). Если curl возвращает соответствующий IP, адрес работает. Перезагрузитесь, чтобы проверить сохранение настроек.
for i in $(seq 2 254); do
ip addr del 203.0.113.$i/24 dev eth0
doneНе забудьте очистить постоянную конфигурацию: удалите строки из Netplan, используйте nmcli -ipv4.addresses или отключите bind-ips.service.
Зависит от того, находится ли блок в одном L2-сегменте с основным IP или маршрутизируется на него. Следуйте данным о выдаче или уточните в тикете.
Проверьте, входит ли IP в рабочий диапазон, и настройки файрвола; протестируйте адрес отдельно через curl --interface. Если не помогает, пришлите список IP в тикете.
Несколько сотен адресов практически не нагружают ядро, хотя netplan apply может выполняться немного дольше.
Если проблема не решена, создайте тикет в круглосуточную техподдержку IMIDC.