Если UFW активен - он блокирует forwarding трафика от/через incusbr0.
Incus (как и LXD) требует явных правил в UFW для managed bridge, иначе forwarding не проходит.
Решение (самое простое и безопасное)
Выполни на хосте эти команды:
sudo ufw allow in on incusbr0
sudo ufw route allow in on incusbr0
sudo ufw route allow out on incusbr0
sudo ufw reload
allow in on incusbr0— разрешает входящий трафик на bridge (DHCP, DNS от контейнеров к хосту).route allow in/out on incusbr0— разрешает форвардинг (роутинг) трафика через bridge в обе стороны (это критично для выхода в интернет).
После этого:
incus restart my-debian # или incus network restart incusbr0
Зайди в контейнер и проверь:
incus exec my-debian -- bash
ping -c 4 10.115.187.1 # bridge IP хоста — должен работать
ping -c 4 8.8.8.8
ping -c 4 google.com # теперь DNS тоже должен резолвиться
apt update
Если всё заработает — можно сделать правила более строгими (например, только для нужных портов), но для начала это стандартный фикс.
Почему именно так
- UFW по умолчанию дропает неизвестный forwarding (policy drop в FORWARD).
- Incus добавляет masquerade и accept в свои цепочки, но UFW "оборачивает" FORWARD своими jump'ами (ufw-before-forward и т.д.), и если нет allow для интерфейса — пакеты не доходят до incus-правил.
- Это задокументировано в Incus: https://linuxcontainers.org/incus/docs/main/howto/network_bridge_firewalld/ (раздел UFW: Add rules for the bridge).
Если после этих команд интернет появится — отлично.