Как настроить доступ к серверу 1С на Ubuntu через интернет

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

Ситуация, когда сервер 1С на базе Ubuntu в связке с PostgreSQL прекрасно работает внутри локальной сети, но отказывается принимать подключения через интернет, является классической при настройке клиент-серверной архитектуры. Разберем пошагово, почему это происходит и как обеспечить стабильный доступ для удаленных сотрудников.

Проанализируем механику подключения клиента 1С

Прежде чем переходить к настройкам, важно понять, как именно тонкий клиент или толстый клиент взаимодействует с сервером. Процесс происходит в несколько этапов:

  1. Клиент обращается к Агенту сервера (порт 1540).
  2. Агент перенаправляет запрос к Менеджеру кластера (порт 1541).
  3. Менеджер кластера выделяет Рабочий процесс и передает клиенту порт этого процесса.

Главная ловушка заключается в том, что рабочие процессы используют динамический диапазон портов. Если вы пробросили на роутере только 1540 и 1541, соединение разорвется сразу после попытки авторизации.

Шаг 1. Настройка диапазона портов рабочих процессов

Для полноценной работы через NAT (роутер) необходимо открыть не два, а целый диапазон портов. По умолчанию в 1С:Предприятии 8.3 это порты 1560–1591. Рассмотрим, как убедиться, что они открыты в Ubuntu.

Проверим состояние брандмауэра ufw и разрешим входящий трафик:


sudo ufw allow 1540:1591/tcp
sudo ufw reload

Не забудьте настроить аналогичный проброс (Port Forwarding) на вашем роутере. Весь диапазон TCP 1540-1591 должен быть перенаправлен на внутренний IP-адрес вашего сервера Ubuntu.

Шаг 2. Решение проблемы разрешения имен (DNS и Hostname)

Выясним причину самой частой ошибки: «Сервер базы данных не обнаружен». Она возникает из-за того, что при подключении сервер передает клиенту свое локальное имя (hostname), например srv-1c-ubuntu. Клиент, находясь в интернете, не знает, по какому IP-адресу искать это имя.

Рассмотрим два способа решения этой проблемы:

  1. Редактирование файла hosts на стороне клиента: Это самый простой способ. На компьютере, с которого вы подключаетесь, откройте файл C:\Windows\System32\drivers\etc\hosts (от имени администратора) и добавьте строку:

    [Внешний_IP_сервера] srv-1c-ubuntu

  2. Использование веб-публикации: Это более профессиональный метод, который мы разберем далее.

Шаг 3. Настройка PostgreSQL для сетевого доступа

Хотя сервер 1С и СУБД могут находиться на одной машине, необходимо убедиться, что PostgreSQL готов принимать запросы от процессов 1С. Проанализируем конфигурационные файлы /etc/postgresql/[версия]/main/.

В файле postgresql.conf параметр listen_addresses должен позволять прослушивание интерфейсов:

listen_addresses = '*'

В файле pg_hba.conf проверим права доступа. Для локального взаимодействия сервера 1С с базой достаточно стандартных настроек, но если вы планируете администрировать базу извне, убедитесь в наличии разрешающих строк для вашего пользователя.

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

Прямое открытие портов 1540-1591 в интернет считается небезопасным. Рассмотрим стандарт индустрии — использование веб-сервера Apache. В этом случае клиенту достаточно будет иметь доступ только к порту 80 (HTTP) или 443 (HTTPS), а все сложности с диапазонами портов и именами хостов исчезнут.

Выполним установку Apache на Ubuntu:

sudo apt-get install apache2

Затем воспользуемся утилитой webinst, которая идет в комплекте с платформой 1С, для публикации базы данных. Перейдите в каталог с установленной платформой (например, /opt/1cv8/x86_64/[версия]/) и выполните команду:


sudo ./webinst -apache24 -wsdir MyBaseName -dir /var/www/mybase -connstr "Srvr=localhost;Ref=MyBaseName;" -confPath /etc/apache2/apache2.conf

Здесь MyBaseName — имя вашей базы. После этого перезапустите веб-сервер:

sudo systemctl restart apache2

Теперь подключение из интернета будет осуществляться по адресу вида http://[Внешний_IP]/MyBaseName. Это стабильнее, безопаснее и проще в настройке на стороне клиента.

Шаг 5. Проверка IPv6 и сетевых интерфейсов

Иногда сервер 1С на Ubuntu по умолчанию начинает слушать порты только на протоколе IPv6. Если ваш провайдер или роутер использует IPv4, подключение не удастся. Проверим, на каких адресах ожидают соединения процессы ragent:

netstat -tulnp | grep ragent

Если вы видите только tcp6, рекомендуем временно отключить IPv6 в настройках sysctl или принудительно настроить 1С на работу с IPv4, чтобы исключить конфликты адресации при пробросе портов.

Выводы и рекомендации

Подведем итоги. Если вам нужно быстро «пробросить» 1С наружу:

Однако для постоянной работы мы настоятельно рекомендуем использовать веб-публикацию через Apache или организацию VPN-туннеля (например, WireGuard). Это избавит вас от необходимости открывать технологические порты сервера в глобальную сеть и значительно повысит безопасность ваших данных.

← На главную