feat(NetworkConfigManager): add support for local-address parameter in GRE tunnel configuration for home routers, improving network setup clarity
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m44s

This commit is contained in:
2026-01-24 18:21:28 +07:00
parent cd4b95bb8f
commit 2bdad8445e
+14 -2
View File
@@ -1513,6 +1513,12 @@ function NetworkConfigManager() {
// Используем DNS домен для remote-address, если он есть, иначе IP
const remoteAddress = iface.server2Info?.dns || iface.server2Info?.ip || iface.server2Name;
// Проверяем, является ли текущий сервер home роутером
const isHomeRouter = server.type === 'home';
// Если это home роутер, добавляем local-address с IP адресом этого сервера
const localAddressParam = isHomeRouter && server.ip ? ` local-address=${server.ip}` : '';
// Проверяем наличие пароля: ipsecPasswordId должен быть не пустым и пароль должен быть загружен
const hasIpsecPassword = iface.ipsecPasswordId &&
iface.ipsecPasswordId.trim() !== '' &&
@@ -1522,14 +1528,20 @@ function NetworkConfigManager() {
if (hasIpsecPassword) {
// GRE туннель с IPSec через ipsec-secret (автоматическая настройка)
code += `# Создание GRE туннеля с IPSec (автоматическая настройка через ipsec-secret)\n`;
if (isHomeRouter) {
code += `# Home роутер: используется local-address=${server.ip}\n`;
}
const mtuParam = iface.mtu ? ` mtu=${iface.mtu}` : '';
code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress} keepalive=10s allow-fast-path=no ipsec-secret="${iface.ipsecPassword}"${mtuParam}\n`;
code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress}${localAddressParam} keepalive=10s allow-fast-path=no ipsec-secret="${iface.ipsecPassword}"${mtuParam}\n`;
code += '\n';
} else {
// GRE туннель без IPSec (голый GRE)
code += `# Создание GRE туннеля (без IPSec)\n`;
if (isHomeRouter) {
code += `# Home роутер: используется local-address=${server.ip}\n`;
}
const mtuParam = iface.mtu ? ` mtu=${iface.mtu}` : '';
code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress} keepalive=10s allow-fast-path=no${mtuParam}\n`;
code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress}${localAddressParam} keepalive=10s allow-fast-path=no${mtuParam}\n`;
code += '\n';
}
}