From 4779b74464d07ecbe854632b8e1c8a9f22ea158a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Thu, 7 May 2026 10:25:04 +0900 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86?= =?UTF-8?q?=D0=B0=20=D1=81=D0=B5=D1=82=D0=B8=20=D0=B1=D1=8B=D0=BB=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B5=D0=B4=D0=B8=D0=BD=D0=BE=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/templates/network.html | 489 ++++++++++++++++++------------------- 1 file changed, 238 insertions(+), 251 deletions(-) diff --git a/web/templates/network.html b/web/templates/network.html index 701e714..076907b 100644 --- a/web/templates/network.html +++ b/web/templates/network.html @@ -7,274 +7,261 @@ -
-
-
-
Сеть
-
NAT Router для VPS, проброс одиночных портов и диапазонов к VM
-
-
- user: {{ user }} - + Создать VM - ← Дашборд -
-
-
+
+ {% include "_sidebar.html" %} - {% if error %} -
{{ error }}
- {% endif %} - -
-
-
NAT network
-
{{ ctx.nat.name }}
- {{ 'ready' if ctx.nat.exists else 'not created' }} -
-
-
Subnet
-
{{ ctx.nat.subnet }}
-
-
-
External interface
-
{{ ctx.external_interface }}
-
-
-
IPv4 forward
-
{{ ctx.ip_forward }}
-
-
- -
-
-
-

Virtuality NAT Router

- {{ ctx.nat.bridge }} +
+
+
+
Сеть
+
NAT Router для VPS, проброс одиночных портов и диапазонов к VM
-
-
Gateway{{ ctx.nat.gateway }}
-
DHCP{{ ctx.nat.dhcp }}
-
Bridge{{ ctx.nat.bridge }}
+
+ user: {{ user }} + ← Дашборд +
-
- -
-
{{ ctx.nat.info }}
-
+ -
-
-

DHCP leases

- virsh net-dhcp-leases -
-
{{ ctx.nat.leases }}
-
IP для проброса определяется автоматически: сначала через qemu-guest-agent, затем по DHCP leases и MAC-адресу VM.
-
-
+ {% if error %} +
{{ error }}
+ {% endif %} -
-
-
-

Добавить проброс порта

- DNAT auto IP · ranges -
-
- +
+
+
NAT network
+
{{ ctx.nat.name }}
+ {{ 'ready' if ctx.nat.exists else 'not created' }} +
+
+
Subnet
+
{{ ctx.nat.subnet }}
+
+
+
External interface
+
{{ ctx.external_interface }}
+
+
+
IPv4 forward
+
{{ ctx.ip_forward }}
+
+
- - - - - - - - - - -
- Можно указать одиночный порт или диапазон. Для VoIP/RTP обычно: внешний 10000-20000 → внутренний 10000-20000, протокол udp. Длины диапазонов должны совпадать. +
+
+
+

Virtuality NAT Router

+ {{ ctx.nat.bridge }}
+
+
Gateway{{ ctx.nat.gateway }}
+
DHCP{{ ctx.nat.dhcp }}
+
Bridge{{ ctx.nat.bridge }}
+
+ + + +
{{ ctx.nat.info }}
+
- - -
+
+
+

DHCP leases

+ virsh net-dhcp-leases +
+
{{ ctx.nat.leases }}
+
IP для проброса определяется автоматически: сначала через qemu-guest-agent, затем по DHCP leases и MAC-адресу VM.
+
+
-
-
-

Диагностика публичного доступа

- VM → Internet -
-
- -
+
+
+
+

Добавить проброс порта

+ DNAT auto IP · ranges +
+ + + + + +
Можно указать одиночный порт или диапазон. Для VoIP/RTP обычно: внешний 10000-20000 → внутренний 10000-20000, протокол udp. Длины диапазонов должны совпадать.
+ + +
+ +
+
+

Диагностика публичного доступа

+ VM → Internet
- - - -
-
- - {% if diagnostics %} -
-
-

Результат диагностики

- {{ diagnostics.vm_name }} · {{ diagnostics.protocol }} {{ diagnostics.external_port }} → {{ diagnostics.guest_port }} -
-
{{ diagnostics.verdict }}
-
-
VM IP{{ diagnostics.vm_ip or 'not found' }}
-
External interface{{ diagnostics.external_interface }}
-
Mapping{{ diagnostics.external_port }} → {{ diagnostics.guest_port }}
-
- - - - {% for check in diagnostics.checks %} - - - - - - {% endfor %} - -
ПроверкаСтатусДетали
{{ check.name }}{{ 'OK' if check.ok else 'FAIL' }}{{ check.detail }}
-
-
-
Проверить входящий трафик
-
{{ diagnostics.commands.watch_external }}
+
+ +
+ + +
+ + +
-
-
Проверить трафик к VM
-
{{ diagnostics.commands.watch_internal }}
-
-
-
- {% endif %} + -
-
-

Пробросы портов

-
-
- - - - - - {% for item in ctx.forwards %} - - - - - - - - - {% else %} - - {% endfor %} - -
ПробросVMВнутренний адресПротоколОписаниеДействия
- {{ item.external_port_label|default(item.external_port) }} → {{ item.guest_port_label|default(item.guest_port) }} - {% if item.is_range %}range{% endif %} - {{ item.vm_name }}{{ item.guest_ip }}{{ item.protocol }}{{ item.note }} -
-
- - - - - -
-
- -
-
-
Пробросов пока нет
-
+ {% if diagnostics %} +
+
+

Результат диагностики

+ {{ diagnostics.vm_name }} · {{ diagnostics.protocol }} {{ diagnostics.external_port }} → {{ diagnostics.guest_port }} +
+
{{ diagnostics.verdict }}
+
+
VM IP{{ diagnostics.vm_ip or 'not found' }}
+
External interface{{ diagnostics.external_interface }}
+
Mapping{{ diagnostics.external_port }} → {{ diagnostics.guest_port }}
+
+ + + + {% for check in diagnostics.checks %} + + + + + + {% endfor %} + +
ПроверкаСтатусДетали
{{ check.name }}{{ 'OK' if check.ok else 'FAIL' }}{{ check.detail }}
+
+
Проверить входящий трафик
{{ diagnostics.commands.watch_external }}
+
Проверить трафик к VM
{{ diagnostics.commands.watch_internal }}
+
+
+ {% endif %} -
-
-

nftables preview

- /etc/virtuality/nftables/virtuality.nft -
-
{{ ctx.nft_rules }}
-
+
+
+

Пробросы портов

+
+
+ + + + + + {% for item in ctx.forwards %} + + + + + + + + + {% else %} + + {% endfor %} + +
ПробросVMВнутренний адресПротоколОписаниеДействия
+ {{ item.external_port_label|default(item.external_port) }} → {{ item.guest_port_label|default(item.guest_port) }} + {% if item.is_range %}range{% endif %} + {{ item.vm_name }}{{ item.guest_ip }}{{ item.protocol }}{{ item.note }} +
+
+ + + + + +
+
+
+
Пробросов пока нет
+
+ +
+
+

nftables preview

+ /etc/virtuality/nftables/virtuality.nft +
+
{{ ctx.nft_rules }}
+
+
+