Главное правило: SSL-ready by default
+ Let’s Encrypt / HTTP-01 +curl -I http://domain.ru + +# Хорошо: ответил nginx, допустимы 200 / 301 / 404 +# Плохо: timeout, connection refused или ответ админки роутера+
Bridge VM
+ br0 / LAN node +Если VM подключена к bridge и имеет полноценный LAN IP, самый чистый путь — пробрасывать WAN-порты роутера напрямую на IP VM.
+WAN 80 → IP_VM:80 +WAN 443 → IP_VM:443+
NAT VM
+ Virtuality DNAT +Если VM находится во внутренней NAT-сети Virtuality, внешний роутер должен вести трафик на хост Virtuality, а дальше Virtuality DNAT отправит его в VM.
+WAN 80/443 → HOST:80/443 +HOST DNAT → IP_VM:80/443+
Ключевые директории
+ filesystem +| Путь | Назначение |
|---|---|
| /opt/virtuality/source | Исходники GitHub-репозитория Virtuality. |
| /opt/virtuality/web | Установленная web-панель, которую запускает systemd. |
| /opt/virtuality/venv | Python virtualenv панели. |
| /var/lib/virtuality/iso | ISO-образы для установки VM. |
| /var/lib/virtuality/images | qcow2-диски виртуальных машин. |
| /var/lib/virtuality/disk-images | Загруженные готовые .img/.raw/.qcow2 образы и распакованные архивы. |
| /var/lib/virtuality/network | Правила пробросов портов и ручные IP VM. |
| /var/log/virtuality | Логи установки, операций и диагностики. |
Обновление панели
+ GitHub → install +cd /opt/virtuality/source +sudo git fetch --all +sudo git reset --hard origin/main +sudo git clean -fd +sudo bash scripts/install_web_panel.sh +sudo systemctl restart virtuality-web+
Быстрая диагностика
+ host / VM / network +sudo vhealth +sudo systemctl status virtuality-web --no-pager +sudo journalctl -u virtuality-web -n 120 --no-pager +virsh list --all +virsh net-list --all +ip route +sudo nft list ruleset | grep -A120 virtuality+
Проверка проброса к VM
+ tcpdump +Если certbot или внешний сайт не открывается, сначала надо понять, где теряется пакет: на роутере, на хосте Virtuality или уже внутри VM.
+# На хосте Virtuality +sudo tcpdump -ni br0 'tcp port 80 or tcp port 443' + +# На VM +sudo ss -tulpn | grep -E ':80|:443' +sudo nginx -t+