База знаний
Документация Virtuality, боевые заметки, сетевые схемы и чек-листы
Фокус
VM / сеть / SSL
Статус
Наполняется
Правило
SSL-ready
Версия раздела
0.8.59

Главное правило: SSL-ready by default

Let’s Encrypt / HTTP-01
При настройке VM и пробросов Virtuality должна сразу учитывать выпуск SSL-сертификатов. Для Let’s Encrypt критичен внешний доступ к HTTP-01 challenge на TCP 80.
DNSA-запись домена должна указывать на реальный внешний IP сервера или роутера.
WAN 80/443Порты не должны быть заняты веб-интерфейсом роутера, FastPanel на хосте или другой службой.
FirewallKeenetic, внешний firewall и UFW/nftables должны пропускать TCP 80 и TCP 443.
Проверка снаружиПеред certbot надо проверять curl с мобильной сети или внешнего хоста, а не только из локальной Wi-Fi сети.
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
Для сайтов и FastPanel внутри bridge VM этот вариант проще и надёжнее: меньше NAT-слоёв, меньше магии, меньше боли.

NAT VM

Virtuality DNAT

Если VM находится во внутренней NAT-сети Virtuality, внешний роутер должен вести трафик на хост Virtuality, а дальше Virtuality DNAT отправит его в VM.

WAN 80/443 → HOST:80/443
HOST DNAT  → IP_VM:80/443
Для NAT-сценария правила Virtuality должны быть применены и проверены через /network и tcpdump.

Ключевые директории

filesystem
ПутьНазначение
/opt/virtuality/sourceИсходники GitHub-репозитория Virtuality.
/opt/virtuality/webУстановленная web-панель, которую запускает systemd.
/opt/virtuality/venvPython virtualenv панели.
/var/lib/virtuality/isoISO-образы для установки VM.
/var/lib/virtuality/imagesqcow2-диски виртуальных машин.
/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

Правила версионирования

release discipline
+0.0.1Мелкий фикс, безопасное уточнение, диагностика, маленький UI-патч.
+0.1.0Заметная функция или новый раздел панели.
+1.0.0Архитектурный разрыв или несовместимое изменение.
КоммитыСообщения коммитов — на русском, в прошедшем времени, без инфинитива.