Как правильно добавить существующую серверную базу 1С из другой сети и избежать разрушения данных

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

Настройка взаимодействия между серверами 1С:Предприятие и СУБД, находящимися в разных локальных сетях (подсетях), — это классическая задача системного администрирования, которая таит в себе множество скрытых угроз и неочевидных технических нюансов. Очень часто при попытке подключить базу со второго сервера приложений напрямую к первому возникает ошибка соединения. Давайте подробно разберем, почему это происходит, как функционирует сетевой механизм платформы 1С, как защитить данные от необратимого повреждения и настроить стабильную работу системы по шагам.

Анализ сетевого механизма 1С: почему стандартного «пинга» по IP недостаточно

Довольно часто администраторы сталкиваются с ситуацией: ping до удаленного сервера проходит без потерь, порты открыты, но при попытке добавить базу в консоли администрирования или в стартовом окне 1С система выдает ошибку связи. Чтобы понять причину, давайте проанализируем внутреннюю логику работы платформы 1С:Предприятие при клиент-серверном подключении:

  1. При первичном обращении клиент (или сторонний сервер приложений) отправляет запрос на порт менеджера кластера (по умолчанию 1541) удаленного сервера по указанному нами IP-адресу.
  2. Менеджер кластера (процесс rmngr) принимает этот запрос, сверяет его со списком зарегистрированных информационных баз и выделяет под это подключение конкретный рабочий процесс rphost.
  3. Критический момент: менеджер кластера возвращает клиенту не IP-адрес, а именно сетевое имя (hostname) того рабочего сервера, на котором запущен выделенный процесс rphost (например, Server-1C-Main).
  4. Клиентская машина (или удаленный сервер приложений) пытается установить прямое соединение с рабочим процессом в диапазоне портов 1560-1591, отправляя пакеты именно на имя Server-1C-Main. Если во второй сети это имя не сопоставлено с IP-адресом первого сервера через DNS, подключение немедленно обрывается с ошибкой вида server_addr=tcp://Server-1C-Main:1560....

Таким образом, для успешного подключения критически важно обеспечить корректное разрешение имен (DNS-резолв) между изолированными сетями.

Шаг 1. Настройка разрешения имен через файл hosts

Для того чтобы сервер из второй сети мог без труда определять сетевые имена серверов из первой сети, мы должны настроить службу DNS или воспользоваться локальным файлом сопоставления. Если в вашей сети нет общего DNS-сервера, обслуживающего обе подсети, давайте воспользуемся ручным прописыванием имен в файле hosts.

Разберем по шагам, как это сделать на сервере под управлением Windows Server (на котором развернут Server 2):

  1. Откроем текстовый редактор (например, Блокнот) строго от имени Администратора.
  2. Перейдем к открытию файла по следующему пути: C:\Windows\System32\drivers\etc\hosts (в выпадающем списке типов файлов выберите "Все файлы").
  3. В самый конец файла добавим строчку сопоставления реального IP-адреса Server 1 (где фактически крутится база) и его официального сетевого имени в локальной сети.

Пример записи в файле hosts:


# Шаблон: [IP-адрес удаленного сервера] [Сетевое имя удаленного сервера]
192.168.100.50    Server-1C-Main
192.168.100.51    SQL-Server-DB

После сохранения изменений обязательно проверим работоспособность сопоставления. Запустим командную строку и выполним команду проверки связи не по IP-адресу, а именно по сетевому имени:

ping Server-1C-Main

Если сопоставление настроено верно, мы увидим успешный обмен пакетами с указанным IP-адресом.

Шаг 2. Критическое предупреждение: опасность "убить" базу данных при одновременной регистрации

Рассмотрим важнейший аспект архитектуры 1С, несоблюдение которого гарантированно приведет к полной или частичной потере ваших данных. Категорически запрещено регистрировать одну и ту же физическую базу данных СУБД (MS SQL или PostgreSQL) на двух независимых серверах приложений 1С!

Давайте подробно выясним, почему такое действие разрушительно для базы данных:

Как правильно организовать работу: Физическая база данных должна управляться строго одним сервером приложений 1С. Если ваша цель — распределить нагрузку между Server 1 и Server 2, вам необходимо объединить их в единый Кластер 1С, в котором один рабочий сервер будет выполнять роль центрального (координирующего работу менеджеров блокировок и кэша), а второй будет подключен как дополнительный рабочий сервер.

Шаг 3. Обеспечение безопасности: уход от публикации портов в интернет

Давайте проанализируем ситуацию, когда администраторы ради быстроты настройки "выставляют все порты сервера напрямую в интернет" без использования защищенных каналов. Это грубейшая и чрезвычайно опасная ошибка администрирования.

Публикация портов СУБД (1433 для MS SQL или 5432 для PostgreSQL) и портов службы 1С (1540-1541, 1560-1591) в открытый доступ делает вашу инфраструктуру легкой мишенью для автоматизированных ботнетов. Методом непрерывного подбора паролей (брутфорса) злоумышленники получают доступ к СУБД за считанные часы. Результат всегда плачевен: базы данных шифруются вирусами-вымогателями, а конфиденциальная информация крадется.

Для безопасного объединения серверов из разных сетей мы должны организовать защищенный зашифрованный канал связи — VPN-туннель. Рассмотрим наиболее эффективные технологии для этой задачи:

Только после объединения сетей в единый VPN-туннель мы можем безопасно обращаться к портам удаленного сервера так, будто он находится в нашей локальной сети.

Шаг 4. Проблема сетевых задержек (Latency/Ping) и альтернативные архитектурные решения

Даже если мы успешно связали две подсети через VPN и прописали имена серверов, нас подстерегает главная проблема удаленной работы клиент-серверной архитектуры — сетевые задержки ( latency ).

Платформа 1С спроектирована так, что при выполнении даже простых операций (например, открытие формы списка или проведение документа) между клиентом, сервером приложений и СУБД совершаются тысячи мелких последовательных запросов (так называемые round-trips). В локальной сети, где ping составляет менее 1 мс, эти тысячи запросов выполняются мгновенно. Но если сервера разделены интернетом и задержка возрастает хотя бы до 20-50 мс, простая операция открытия формы, занимавшая секунду в офисе, будет выполняться минутами.

Если вы столкнулись с медленной работой системы из удаленной сети, давайте рассмотрим два профессиональных архитектурных альтернативных решения, которые полностью исключают эту проблему:

Вариант А. Публикация базы на веб-сервере (IIS или Apache)

Этот способ идеально подходит, если пользователям со второго сервера (или удаленного филиала) необходимо полноценно работать с базой данных без потери производительности.

Рассмотрим логику этого решения:

  1. На Server 1 (где локально развернуты сервер 1С и СУБД) устанавливается веб-сервер IIS или Apache.
  2. С помощью конфигуратора 1С выполняется публикация информационной базы на веб-сервере.
  3. На Server 2 пользователи запускают обычный Тонкий клиент 1С, но в качестве типа расположения базы указывают "На веб-сервере" и прописывают ссылку вида https://mycompany.ru/mybase.

При такой схеме весь тяжелый трафик между сервером приложений и базой SQL крутится внутри локальной сети Server 1 на сверхвысоких скоростях. По внешнему каналу передаются только оптимизированные XML/JSON пакеты с экранными формами. Для работы требуется открыть всего один порт — 443 (HTTPS), что гарантирует максимальную безопасность.

Вариант Б. Терминальный сервер (RDP / RemoteApp)

Если пользователям на Server 2 требуется запускать не только 1С, но и смежные программы, взаимодействующие с базой, мы можем развернуть терминальный сервер:

  1. Терминальный сервер (RDS) разворачивается в той же локальной подсети, где физически находится Server 1.
  2. Пользователи из второй сети подключаются по защищенному протоколу RDP или запускают 1С как отдельное удаленное приложение через RemoteApp.
  3. Сама программа 1С выполняется непосредственно на терминальном сервере, то есть в непосредственной близости к серверу баз данных, а пользователю на экран передается лишь высокопроизводительный видеопоток.

Резюме и чеклист для администратора

Давайте подведем итог всему вышесказанному. Чтобы успешно и безопасно настроить доступ к базе 1С из другой сети, придерживайтесь следующего четкого плана действий:

  1. Никогда не регистрируйте одну базу SQL на двух независимых серверах 1С во избежание разрушения метаданных.
  2. Объедините сети серверов с помощью надежного зашифрованного VPN-туннеля (например, WireGuard).
  3. Обязательно настройте разрешение имен, добавив имя Server 1 в файл hosts на Server 2.
  4. Проверьте доступность портов 1540, 1541, 1560-1591 внутри VPN с помощью утилиты telnet или командлетов PowerShell.
  5. Если задержки (ping) между сетями превышают 5-10 мс, откажитесь от идеи прямого подключения "толстым" или стандартным клиентом. Опубликуйте базу на веб-сервере для работы через Тонкий клиент либо используйте технологию RDP / RemoteApp.
← На главную