Можно ли подключиться к базе 1С через интернет напрямую через SQL Server?

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

При организации удаленной работы с клиент-серверной базой данных «1С:Предприятие 8» у системных администраторов часто возникает вопрос: можно ли предоставить пользователям доступ из интернета напрямую через СУБД (например, Microsoft SQL Server), настроив проброс портов и проверив соединение через файл test.udl? Разберем архитектурные принципы работы платформы 1С, выясним причину неудачных попыток такого подключения и рассмотрим корректные технические решения для безопасной работы через интернет.

Архитектурные ограничения: почему нельзя подключиться к 1С через SQL

Главная причина, по которой попытка подключиться к 1С из внешней сети через порт SQL-сервера не приносит результата, кроется в фундаментальном устройстве платформы «1С:Предприятие 8.3». Клиент-серверный вариант работы 1С является трехзвенной архитектурой, состоящей из трех независимых уровней:

  1. Клиентское приложение (тонкий клиент, толстый клиент или веб-клиент), с которым взаимодействует пользователь.
  2. Кластер серверов 1С (служба ragent, менеджер кластера rmngr и рабочие процессы rphost).
  3. Сервер баз данных (MS SQL Server, PostgreSQL, Oracle Database или IBM DB2).

Проанализируем ключевое правило этой архитектуры: клиентские приложения 1С никогда не взаимодействуют с сервером СУБД напрямую. Все запросы на чтение и запись данных клиент отправляет серверу приложений 1С. Сервер приложений транслирует вызовы встроенного языка в оптимизированные SQL-запросы, отправляет их в СУБД, получает выборку данных, обрабатывает ее и возвращает результат на клиентскую машину.

Когда вы создаете и настраиваете файл test.udl, он подключается к SQL Server напрямую по системным библиотекам OLE DB / ODBC через порт СУБД (по умолчанию 1433). Успешная проверка в UDL свидетельствует исключительно о том, что открыт сетевой доступ к порту SQL Server. Однако платформа 1С при запуске обращается не к SQL-серверу, а пытается связаться с кластером серверов 1С. Пытаться запустить 1С, указывая внешнее подключение к SQL-порту, бессмысленно — клиентское приложение просто не умеет общаться с СУБД минуя серверную часть платформы.

Важное предупреждение по безопасности: открытие порта SQL Server (1433) в публичный доступ через интернет категорически недопустимо. Это создает критическую уязвимость вашей инфраструктуры перед атаками перебора паролей (brute-force) и эксплуатацией уязвимостей СУБД, что ставит под угрозу сохранность коммерческих данных.

Почему сложно настроить прямое подключение к серверу 1С по TCP

Нередко возникает следующая идея: если нельзя подключиться через SQL, можно ли пробросить на маршрутизаторе порты самого сервера 1С и подключиться напрямую клиентом? Технически это возможно, однако на практике попытки прямого соединения через интернет сталкиваются с серьезными барьерами:

  1. Необходимость проброса широкого диапазона портов. Платформе недостаточно открыть только один порт агента 1540. Требуется открыть порт менеджера кластера 1541, а также весь динамический пул портов рабочих процессов rphost (диапазон 1560–1591). Открытие такого пула наружу существенно снижает безопасность корпоративной сети.
  2. Проблема трансляции сетевых адресов (NAT) и разрешения имен (DNS). При подключении клиент сначала обращается к главному процессу, после чего менеджер кластера перенаправляет клиента на конкретный рабочий процесс rphost. При этом сервер передает клиенту свое внутреннее локальное имя хоста (NetBIOS-имя или внутренний FQDN). Удаленный компьютер в интернете не знает этого внутреннего имени и не может завершить соединение. Для обхода проблемы приходится вручную сопоставлять сетевые адреса в консоли администрирования кластера или модифицировать системный файл hosts на каждом клиентском компьютере.
  3. Нестабильность бинарного протокола. Прямой TCP-протокол 1С оптимизирован для работы в надежных локальных сетях с минимальной задержкой (ping < 2 мс). При работе через интернет с неизбежными потерями пакетов и плавающим пингом сеансы пользователей будут регулярно аварийно завершаться.

По этим причинам прямое TCP-подключение к кластеру 1С через интернет не применяется в промышленной эксплуатации. Разберем штатные и надежные решения этой задачи.

Решение 1. Публикация базы на веб-сервере (рекомендуемый способ)

Публикация информационной базы на веб-сервере — стандартный, рекомендованный фирмой «1С» способ организации удаленного доступа. В качестве веб-сервера используется Internet Information Services (IIS) под управлением Windows Server или Apache HTTP Server.

Разберем достоинства веб-публикации:

  1. Минимальные требования к портам: наружу открывается только один стандартный порт — 443 (HTTPS). Порты кластера 1С и порт SQL Server остаются полностью изолированными внутри защищенной локальной сети.
  2. Шифрование трафика: подключение по протоколу HTTPS с использованием SSL/TLS-сертификата гарантирует защиту передаваемых данных от перехвата.
  3. Оптимизация для медленных каналов: трафик между веб-сервером и клиентом эффективно сжимается, а сам протокол устойчив к сетевым задержкам.
  4. Универсальность клиентов: к опубликованной базе можно подключаться как через тонкий клиент 1С (указав адрес веб-ссылки), так и через обычный браузер без предварительной установки платформы.

Для выполнения публикации запустите конфигуратор 1С от имени администратора, перейдите в меню Администрирование → Публикация на веб-сервере, укажите имя публикации, выберите веб-сервер и каталог, после чего нажмите кнопку Опубликовать.

Решение 2. Организация защищенного VPN-канала

Если специфика конфигурации требует работы в режиме толстого клиента либо по соображениям безопасности публикация в открытый веб нежелательна, оптимальным выбором является создание виртуальной частной сети (VPN).

Рассмотрим, как это работает на практике:

  1. На пограничном маршрутизаторе или отдельном сервере разворачивается VPN-шлюз (на базе протоколов WireGuard, OpenVPN, IPsec или L2TP).
  2. Удаленный пользователь запускает VPN-клиент на своем рабочем ПК и проходит авторизацию.
  3. После установки туннеля удаленный компьютер виртуально оказывается внутри корпоративной подсети. Ему становятся доступны внутренние DNS-имена и локальные IP-адреса серверов.

Этот способ позволяет работать с сервером 1С так же, как если бы клиентский компьютер находился непосредственно в офисе, сохраняя при этом сквозное шифрование всего передаваемого трафика.

Решение 3. Терминальный доступ (RDP / RemoteApp)

Для тяжелых конфигураций на обычных формах, а также при работе через нестабильные каналы связи отличным решением остается подключение к серверу удаленных рабочих столов (Remote Desktop Services).

В этом сценарии клиент 1С запускается непосредственно на терминальном сервере в одном сетевом сегменте с SQL Server и сервером 1С. По интернет-каналу передается исключительно графическая картинка экрана и команды ввода с клавиатуры и мыши, что обеспечивает максимальную скорость работы и устойчивость к кратковременным разрывам связи.

Таким образом, прямое подключение клиента 1С через порт SQL Server невозможно в силу архитектуры платформы. Для удаленной работы системному администратору следует выбрать одно из трех проверенных решений: веб-публикацию по HTTPS, корпоративный VPN-туннель или терминальный доступ.

← На главную