Почему зависает подключение к серверу 1С через VPN и как решить эту проблему?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

При организации удаленного доступа сотрудников или разработчиков к клиент-серверным базам данных «1С:Предприятие» через VPN-туннели часто возникает ситуация: в локальной сети предприятия подключение проходит мгновенно, а через VPN клиент зависает на этапе ожидания ответа сервера или выдает ошибку по таймауту. Разберем по шагам, почему возникает эта проблема, как правильно настроить сопоставление сетевых имен и почему открытие Конфигуратора через VPN работает медленно.

Выясним причину: почему указания только IP-адреса базы недостаточно

Многие пользователи и администраторы предполагают, что если в строке подключения к информационной базе (в окне запуска 1С) указать прямой IP-адрес сервера 1С вместо его доменного имени, то проблемы с DNS исчезнут. Однако на практике подключение всё равно зависает. Проанализируем архитектуру работы клиент-серверного взаимодействия платформы 1С:

  1. Клиентское приложение (тонкий или толстый клиент) изначально устанавливает TCP-соединение с главным менеджером кластера ragent (по умолчанию порт 1540) по адресу, указанному в списке баз.
  2. Менеджер кластера регистрирует сеанс и отправляет клиенту ответ со списком доступных рабочих процессов rphost и назначенным портом (из диапазона 1560–1591). При этом адрес рабочего сервера передается клиенту именно в виде его сетевого имени (hostname или FQDN), так, как сервер зарегистрирован в свойствах кластера в операционной системе.
  3. Клиент 1С пытается установить прямое подключение к рабочему процессу rphost по полученному имени сервера. Если удаленный компьютер, подключенный через VPN, не может преобразовать это имя в IP-адрес (отсутствует DNS-сервер корпоративной сети или нужная A/CNAME-запись), происходит бесконечное ожидание соединения и последующее зависание сеанса.

Способ 1. Добавление записи в локальный файл hosts на клиентском компьютере

Если нет возможности быстро внести изменения на корпоративном DNS-сервере, самым простым и надежным решением является явное сопоставление IP-адреса и имени сервера 1С в системном файле hosts на удаленном компьютере. Разберем порядок действий:

  1. Запустим текстовый редактор «Блокнот» от имени администратора (через контекстное меню «Запуск от имени администратора»).
  2. В меню редактора выберем команду открытия файла и перейдем по пути: C:\Windows\System32\drivers\etc\. В диалоговом окне переключим фильтр типов файлов с «Текстовые документы (*.txt)» на «Все файлы (*.*)».
  3. Откроем файл hosts (обратите внимание, у файла нет расширения).
  4. В конец файла добавим строку с IP-адресом сервера в сети VPN и его сетевым именем (или FQDN-именем кластера), разделив их пробелом или символом табуляции. Например: 192.168.1.10 DocFlowServer
  5. Сохраним изменения в файле. Важно: убедитесь, что редактор сохранил файл именно как hosts, а не создал рядом hosts.txt, иначе операционная система проигнорирует новые настройки.

Способ 2. Настройка DNS-записи на корпоративном сервере

Рассмотрим централизованное решение для системных администраторов, обслуживающих большое количество удаленных пользователей. Чтобы не редактировать файл hosts вручную на каждой рабочей станции:

  1. На корпоративном DNS-сервере создадим прямую запись типа A, сопоставляющую имя хоста сервера 1С с его локальным IP-адресом.
  2. При необходимости создадим псевдоним типа CNAME, указывающий на каноническое имя сервера в домене.
  3. В настройках VPN-подключения (на VPN-сервере или шлюзе) настроим обязательную передачу адреса корпоративного DNS-сервера подключающимся клиентам (опция DNS push), чтобы удаленные рабочие места автоматически использовали внутренний DNS для разрешения имен корпоративной сети.

Почему Конфигуратор 1С зависает или открывается часами через VPN?

После настройки файла hosts пользовательский сеанс предприятия обычно начинает работать, но при попытке открыть базу через Конфигуратор по VPN-каналу многие сталкиваются с новым зависанием: сетевой трафик падает до десятков килобит в секунду, а загрузка конфигурации занимает часы. Выясним технические причины такого поведения:

  1. Проблема MTU и фрагментации пакетов: шифрование и заголовки VPN-туннелей уменьшают максимальный размер полезного блока данных (стандартный размер пакета MTU в 1500 байт уменьшается). Если на шлюзе или сетевом адаптере не настроено автоматическое согласование максимального размера сегмента (MSS Clamping), сетевые пакеты большого размера фрагментируются или молча отбрасываются. Это приводит к непрерывным повторным отправкам TCP-пакетов (retransmits) и резкому падению пропускной способности канала.
  2. Специфика бинарного протокола 1С и задержка (RTT/Ping): собственный протокол платформы 1С для работы в режиме «толстого клиента» и Конфигуратора выполняет сотни тысяч последовательных синхронных вызовов «запрос-ответ». При открытии Конфигуратора считывается массивное дерево метаданных. Даже при высокой скорости интернет-канала задержка в туннеле (RTT в 20–50 мс) суммируется, превращая открытие конфигурации в процесс длительностью от десятков минут до нескольких часов.
  3. Блокировка динамических портов: для полноценного обмена платформе требуются не только базовые порты 1540 и 1541, но и весь пул портов рабочих процессов 1560:1591. Если межсетевой экран VPN-шлюза фильтрует или проверяет этот диапазон с помощью DPI-модулей, длинные TCP-сессии могут обрываться.

Рекомендованные варианты организации удаленной работы с 1С

Рассмотрим, как правильно организовать работу пользователей и программистов при удаленном подключении, исключив сетевые задержки и зависания:

  1. Использование RDP (Remote Desktop) / RemoteApp: для задач администрирования и работы в Конфигураторе подключение к терминальному серверу, расположенному в одном гигабитном сетевом сегменте с сервером 1С и СУБД, является основным и наиболее стабильным стандартом платформы.
  2. Публикация базы на веб-сервере (IIS / Apache): для обычных пользователей база публикуется на веб-сервере. Тонкий клиент 1С взаимодействует с базой по сжатому и оптимизированному протоколу HTTP/HTTPS. Это полностью снимает требование к прямому открытию портов кластера 1С и исключает чувствительность к сетевым задержкам через Интернет или VPN.
  3. Среда разработки 1C:Enterprise Development Tools (1C:EDT): для разработчиков альтернативой прямому подключению Конфигуратора по сети является использование 1C:EDT. Проект конфигурации хранится локально на диске разработчика, а сетевой обмен с сервером происходит только в моменты загрузки изменений и отладки.
  4. Оптимизация параметров туннеля: при необходимости работы толстого клиента через VPN рекомендуется уменьшить значение MTU на интерфейсе VPN до 1350–1400 байт и выполнить очистку локального кэша платформы в каталогах %LOCALAPPDATA%\1C\1Cv8\ и %APPDATA%\1C\1Cv8\.
← На главную