SystemdDoctor
служба не работает сеть изоляция контейнеры

status=225/NETWORK в systemd

Код 225/NETWORK значит, что systemd не сумел настроить сетевую изоляцию службы. Обычно причина в окружении: во вложенном контейнере создать сетевое пространство имён нельзя, либо путь из NetworkNamespacePath= не существует.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Окружение не позволяет создать сетевое пространство имён

    Операция требует CAP_SYS_ADMIN и разрешения от ядра. В контейнере без нужных прав PrivateNetwork=yes не проходит.

  2. Файл пространства имён из NetworkNamespacePath= отсутствует

    Путь должен указывать на существующий файл пространства имён, обычно в /run/netns. Если его создаёт другая служба, она могла не успеть или упасть.

  3. Служба одновременно просит изоляцию сети и доступ к сети

    При PrivateNetwork=yes у службы остаётся только петлевой интерфейс. Если ей нужно наружу, изоляция противоречит задаче — и настройка, добавленная «для безопасности», ломает работу.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Показывает шаг NETWORK и причину отказа.

journalctl -xeu myapp.service --no-pager -n 20

Все параметры сетевой изоляции вместе.

systemctl show myapp.service -p PrivateNetwork -p NetworkNamespacePath -p PrivateIPC

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Окружение не позволяет создать сетевое пространство имён
Почему происходит
Операция требует CAP_SYS_ADMIN и разрешения от ядра. В контейнере без нужных прав PrivateNetwork=yes не проходит.
Как проверить
Проверьте окружение и параметр.
systemd-detect-virt
systemctl show myapp.service -p PrivateNetwork -p CapabilityBoundingSet
Как исправить
Уберите PrivateNetwork=yes в таком окружении либо дайте контейнеру нужные права. Изоляция сети — не обязательное условие работы службы.
2. Файл пространства имён из NetworkNamespacePath= отсутствует
Почему происходит
Путь должен указывать на существующий файл пространства имён, обычно в /run/netns. Если его создаёт другая служба, она могла не успеть или упасть.
Как проверить
Проверьте путь и порядок запуска.
systemctl show myapp.service -p NetworkNamespacePath
ls -l /run/netns/
Как исправить
Добавьте зависимость от службы, которая создаёт пространство имён, через After= и Requires=, либо создайте его заранее.
3. Служба одновременно просит изоляцию сети и доступ к сети
Почему происходит
При PrivateNetwork=yes у службы остаётся только петлевой интерфейс. Если ей нужно наружу, изоляция противоречит задаче — и настройка, добавленная «для безопасности», ломает работу.
Как проверить
Посмотрите, нужен ли службе доступ в сеть, и что у неё стоит в параметрах изоляции.
systemctl show myapp.service -p PrivateNetwork -p IPAddressAllow
Как исправить
Уберите PrivateNetwork=yes и ограничивайте сеть точнее: через IPAddressDeny=, IPAddressAllow= или RestrictAddressFamilies=.

Пример вывода

PrivateNetwork=yes во вложенном контейнере. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

× myapp.service - My application
     Active: failed (Result: exit-code) since Mon 2026-09-14 21:44:05 MSK; 1s ago
    Process: 21500 ExecStart=/usr/local/bin/myapp (code=exited, status=225/NETWORK)

systemd[21500]: myapp.service: Failed at step NETWORK spawning /usr/local/bin/myapp: Operation not permitted

Связанные ошибки

Где встречается чаще всего

Источники

  • systemd.exec(5)
    225 EXIT_NETWORK: не удалось настроить сетевое пространство имён, см. PrivateNetwork=.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено в контейнере без CAP_SYS_ADMIN.
    собственная проверка, systemd 255
    сверено 15 сентября 2026