Юнит /usr/lib/systemd/system/dnscrypt-proxy.socket содержит "After=network.target". Socket-юнит по DefaultDependencies получает неявный Before=sockets.target, а network.target транзитивно зависит от sockets.target → возникает ordering cycle. systemd разрывает его, УДАЛЯЯ сокет из загрузки: systemd[1]: sockets.target: Found ordering cycle on dnscrypt-proxy.socket/start systemd[1]: sockets.target: Job dnscrypt-proxy.socket/start deleted to break ordering cycle starting with sockets.target/start Последствие: сокет не слушает 127.0.0.1:40 → на системах, где dnscrypt-proxy — основной резолвер, после перезагрузки DNS не работает ("Temporary failure in name resolution"), что каскадно валит все зависящие от DNS сервисы. Воспроизведение: ALT 11.1, dnscrypt-proxy как основной резолвер, перезагрузка; либо `systemd-analyze verify default.target` — показывает цикл. Причина: After=network.target в .socket некорректен — сокету сеть не нужна (он лишь открывает listen на loopback). Сетевая зависимость уместна для .service (upstream DoH), но не для .socket. Upstream-юнит эту строку не содержит. Fix: убрать строку "After=network.target" из dnscrypt-proxy.socket. Обходной путь (drop-in): /etc/systemd/system/dnscrypt-proxy.socket.d/override.conf [Unit] DefaultDependencies=no After=
Проверено в опубликованных исходниках: dnscrypt-proxy-2.1.5-alt1 (p11) и dnscrypt-proxy-2.1.17-alt1 (Sisyphus) содержат в dnscrypt-proxy.socket строку After=network.target. Следовательно, описанный ordering cycle не исправлен и в актуальном Sisyphus. Перенесено в Sisyphus и назначено мейнтейнеру компонента.
dnscrypt-proxy-2.1.18-alt1 -> sisyphus: Sun Sep 13 2026 Vitaly Lipatov <lav@altlinux.ru> 2.1.18-alt1 - Own the documentation directory. - Fix socket ordering cycle (ALT bug #60421). - new version 2.1.18