diff --git a/frontend/src/NetworkConfigManager.jsx b/frontend/src/NetworkConfigManager.jsx index 76d9829..a7dbe32 100644 --- a/frontend/src/NetworkConfigManager.jsx +++ b/frontend/src/NetworkConfigManager.jsx @@ -1433,8 +1433,8 @@ function NetworkConfigManager() { // Для GRE туннелей - создаем туннель, опционально с IPSec через ipsec-secret if (iface.type === 'GRE') { - const remoteServerIp = iface.server2Info?.ip || iface.server2Name; - const localServerIp = server.ip || serverName; + // Используем DNS домен для remote-address, если он есть, иначе IP + const remoteAddress = iface.server2Info?.dns || iface.server2Info?.ip || iface.server2Name; // Проверяем наличие пароля: ipsecPasswordId должен быть не пустым и пароль должен быть загружен const hasIpsecPassword = iface.ipsecPasswordId && @@ -1445,12 +1445,12 @@ function NetworkConfigManager() { if (hasIpsecPassword) { // GRE туннель с IPSec через ipsec-secret (автоматическая настройка) code += `# Создание GRE туннеля с IPSec (автоматическая настройка через ipsec-secret)\n`; - code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteServerIp} local-address=${localServerIp} keepalive=10s ipsec-secret="${iface.ipsecPassword}"\n`; + code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress} keepalive=10s ipsec-secret="${iface.ipsecPassword}"\n`; code += '\n'; } else { // GRE туннель без IPSec (голый GRE) code += `# Создание GRE туннеля (без IPSec)\n`; - code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteServerIp} local-address=${localServerIp} keepalive=10s\n`; + code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress} keepalive=10s\n`; code += '\n'; } }