Доступ к серверу 1С извне: какие порты открыть и как не ошибиться

· 10 мин

Содержание

Чтобы клиент 1С подключился к серверу через NAT, нужно пробросить три вещи: порт агента 1540, порт менеджера кластера 1541 и весь диапазон рабочих процессов, по умолчанию 1560-1591. Внешние номера портов должны совпадать с внутренними, а имя сервера, под которым он зарегистрирован в кластере, клиент должен уметь разрешить в ваш внешний IP.

Без последнего условия проброс портов для 1С «вроде настроен», а подключение всё равно падает. Настройка идёт в три слоя: правило на роутере или в облаке, разрешение в фаерволе сервера, запись имени сервера у клиента.

Какие порты использует сервер 1С и зачем их пробрасывать

Клиент-серверная 1С работает в несколько шагов. Сначала клиент обращается к агенту сервера, тот отправляет его к менеджеру кластера, а менеджер выдаёт адрес и порт конкретного рабочего процесса. Дальше клиент общается уже с рабочим процессом.

Поэтому открыть один порт недостаточно. Если закрыт хотя бы диапазон рабочих процессов, клиент дойдёт до агента и упадёт с ошибкой таймаута.

Порт по умолчаниюСлужбаНужен снаружи?
1540 (TCP)Агент сервера ragentДа, для клиент-серверного подключения
1541 (TCP)Менеджер кластера rmngrДа
1560-1591 (TCP)Рабочие процессы rphostДа, весь диапазон
1545 (TCP)Сервер администрирования rasНет, только из админской сети
1542 (TCP)Сервер хранилища crserverТолько разработчикам, лучше через VPN
1550 (TCP)Сервер отладки dbgsНет
475 (TCP/UDP)Менеджер лицензий HASPНет
80 / 443 (TCP)Веб-публикация базы (IIS, Apache)Да, если работаете через браузер или тонкий клиент по HTTP
1433 / 5432 (TCP)MS SQL / PostgreSQLНикогда
445 (TCP)Общий доступ к файловой базеНикогда
3389 (TCP)RDP к терминальному серверуНежелательно, только через шлюз или VPN

Номера можно поменять. Агенту их задают ключами командной строки службы: -port 1540 -regport 1541 -range 1560:1591. Если на сервере установлено два кластера разных версий, у второго порты другие, например 2540, 2541, 2560:2591. Проверьте строку запуска службы «Агент сервера 1С:Предприятия 8.3» перед тем, как что-то открывать.

Когда проброс вообще не нужен

  • 🏢 Пользователи в одной локальной сети с сервером — нужен только фаервол на сервере.
  • 🔐 Удалённые сотрудники подключены по VPN — они попадают во внутреннюю сеть, NAT не участвует.
  • 🌐 База опубликована на веб-сервере — снаружи нужен только 443, порты кластера остаются внутри.

Прямой проброс 1540-1591 в интернет — рабочий, но самый открытый вариант. О рисках — в разделе про безопасность.

Подготовка к пробросу портов на сервер 1С

Перед настройкой роутера проверьте, что всё работает внутри сети. Иначе вы будете искать ошибку не там.

  1. Узнайте реальные порты кластера. Откройте свойства службы агента (services.msc в Windows) и посмотрите путь к исполняемому файлу — в нём есть -port, -regport, -range. В Linux смотрите юнит службы: systemctl cat с именем службы сервера 1С.
  2. Проверьте, что порты слушаются. В Windows: netstat -ano | findstr :154. В Linux: ss -tlnp | grep -E '154|156'.
  3. Подключитесь с другого компьютера в той же сети. Если внутри не работает — проброс не поможет.
  4. Узнайте имя сервера в кластере. Откройте консоль администрирования, разверните кластер → Рабочие серверы и посмотрите поле «Компьютер». Именно это имя сервер будет сообщать клиентам.
  5. Закрепите за сервером постоянный внутренний IP: статический адрес на сетевой карте или резервирование в DHCP роутера.
  6. Проверьте, что у вас «белый» внешний IP. Сравните WAN-адрес в интерфейсе роутера с тем, что показывает любой сервис определения IP. Если адреса разные или WAN начинается на 100.64.–100.127., 10., 192.168. — вы за NAT провайдера, и проброс на своём роутере ничего не даст. Нужна услуга «статический IP» у провайдера или VPN через внешний сервер.
  7. Убедитесь, что у вас есть права администратора и на роутере, и на сервере.

Проверка доступности порта из Windows:

Test-NetConnection srv1c -Port 1541

В Linux то же делают так:

nc -zv srv1c 1541

Проброс портов на роутере для локального сервера 1С

Названия разделов у роутеров разные: «Переадресация портов», «Виртуальные серверы», Port Forwarding, NAT → «Правила». Логика везде одна.

Шаг 1. Создайте правила

Добавьте правило для каждого порта или диапазона:

Внешний портВнутренний IPВнутренний портПротокол
1540192.168.1.101540TCP
1541192.168.1.101541TCP
1560-1591192.168.1.101560-1591TCP

Внешний порт должен совпадать с внутренним. Рабочий процесс сообщает клиенту свой настоящий номер порта, например 1563. Если вы пробросили снаружи 21563 → 1563, клиент постучится на 1563, а снаружи такого правила нет.

Если роутер не умеет диапазоны, придётся создать 32 правила или уменьшить диапазон в свойствах рабочего сервера. Делать диапазон меньше, чем нужно рабочим процессам и их соединениям, нельзя: процессам не хватит портов.

Шаг 2. Научите клиента находить сервер по имени

Это главный приём, о котором забывают. Менеджер кластера возвращает клиенту не IP, а имя компьютера из настроек рабочего сервера, например srv1c. Снаружи это имя никто не знает.

Решение — запись в файле hosts на каждом удалённом компьютере:

# C:\Windows\System32\drivers\etc\hosts
203.0.113.25    srv1c

Где 203.0.113.25 — ваш внешний IP. Файл редактируют блокнотом, запущенным от имени администратора. На Linux-клиенте это /etc/hosts.

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

Шаг 3. Добавьте базу в список

В окне запуска 1С нажмите «Добавить» → «Добавление в список существующей информационной базы» → тип «На сервере 1С:Предприятия». Укажите кластер серверов как в hosts (srv1c) и имя базы в кластере. Если агент работает не на 1540, кластер пишут с портом: srv1c:2541.

Шаг 4. Проверьте снаружи

Проверять нужно с компьютера вне вашей сети, например с мобильного интернета. Изнутри многие роутеры не умеют NAT loopback, и тест «изнутри по внешнему IP» покажет закрытый порт даже при верных правилах.

Как настроить фаервол на сервере 1С

Правило на роутере доводит пакет до сервера. Дальше его может отбросить фаервол самого сервера.

Windows Server

Через PowerShell от имени администратора:

New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound `
  -Protocol TCP -LocalPort 1540-1541,1560-1591 -Action Allow

Тот же результат через netsh:

netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591

Правило можно сузить: в графической оснастке wf.msc на вкладке «Область» укажите удалённые IP-адреса, с которых разрешено подключение. Для офиса с постоянным адресом это лучший вариант.

Linux

С ufw (Ubuntu, Debian):

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
sudo ufw status

С firewalld (RHEL-подобные, Astra, РЕД ОС):

sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload

Разрешить доступ только с одного адреса в ufw:

sudo ufw allow from 198.51.100.7 to any port 1540:1591 proto tcp

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

Проброс портов 1С в облаке: AWS, Azure, Yandex Cloud

В облаке обычно нет роутера с NAT в привычном виде. У виртуальной машины есть публичный адрес, а входящий трафик режет облачный фильтр. Его и нужно настроить, плюс фаервол внутри ОС.

ОблакоГде открывать портыЧто учесть
AWSSecurity Group машины → Inbound rulesИсточник указывайте IP офиса, а не 0.0.0.0/0
AzureNetwork Security Group сетевого интерфейса или подсети → Inbound security rulesПравила проверяются по приоритету, запрещающее с меньшим номером перекроет ваше
Yandex CloudГруппа безопасности сетевого интерфейса → входящий трафикЕсли группа назначена, всё неразрешённое запрещено

Для каждого облака добавьте правила TCP на 1540-1541 и 1560-1591, источником — адреса ваших пользователей.

Проблема с именем сервера в облаке та же. ВМ знает себя по внутреннему имени, а клиенту нужен публичный адрес. Добавьте запись в hosts клиентов или заведите DNS-имя, на которое зарегистрирован рабочий сервер.

Публичный IP облачной машины по умолчанию часто динамический и меняется после остановки ВМ. Зарезервируйте статический адрес, иначе после очередной перезагрузки придётся править hosts у всех пользователей.

Типичные ошибки при открытии портов для 1С

Диагностика: выберите симптом

Ещё две ошибки встречаются при настройке, а не при подключении:

  • 🔀 Проброшен не тот кластер. На сервере стоят две версии платформы, а правила указывают на порты старого кластера.
  • 🧱 Открыт порт СУБД вместо портов 1С. Клиент 1С к базе данных напрямую не ходит, ему нужны только порты кластера. Порт PostgreSQL или MS SQL наружу не нужен.

Безопасность: что открывать нельзя и чем заменить прямой проброс

Открытые порты кластера видят сканеры со всего интернета. Протокол 1С не задуман для работы в открытой сети, поэтому каждый лишний порт — дополнительный риск.

Чего не делать никогда:

  • 🚫 не пробрасывать 445 для файловой базы — это прямой путь для шифровальщиков;
  • 🚫 не выставлять наружу порт СУБД (1433, 5432);
  • 🚫 не открывать 1545 (RAS) и 1550 (отладка): через них можно управлять кластером и сеансами;
  • 🚫 не публиковать 3389 на стандартном порту без шлюза или VPN.

Что сделать, если прямой проброс всё же нужен:

  1. Ограничьте источник: в правилах роутера, фаервола или облака разрешите только IP-адреса офисов.
  2. Назначьте администратора кластера с паролем. Без него любой, кто дошёл до агента, может подключиться консолью.
  3. Включите пароли у всех пользователей информационной базы и проверьте, что в базе нет пользователя без пароля с полными правами.
  4. Снимите права администратора кластера с пользователей и отключите лишние базы на этом сервере.
  5. Обновляйте платформу: исправления безопасности выходят в новых сборках.

Безопаснее прямого проброса три варианта:

ВариантЧто открыть наружуПлюсыМинусы
VPN (WireGuard, OpenVPN, IPsec)Один порт VPNПорты 1С остаются внутри, работает толстый и тонкий клиентНужно ставить VPN-клиент каждому
Веб-публикация базы443Работает через браузер и тонкий клиент, легко закрыть сертификатомНужно настроить IIS или Apache и сертификат
Терминальный сервер через шлюз RD443Пользователь работает на сервере, трафик 1С не покидает сетьНужны лицензии RDS
Перед открытием портов 1С в интернет
Выполнено: 0 / 7

Частые вопросы

Можно ли сменить стандартный порт 1541 на нестандартный, чтобы спрятать сервер?
Можно, ключами -port, -regport и -range в строке запуска службы агента. От сканеров это защищает слабо, но снижает шум автоматических проверок. Клиентам потом указывают кластер с портом агента.
Работает ли 1С по UDP?
Подключение клиента к кластеру идёт по TCP. UDP нужен разве что менеджеру лицензий HASP, но его наружу пробрасывать не нужно.
Нужно ли пробрасывать порты для файловой базы?
Нет. Файловую базу через интернет напрямую не используют: открывать 445 опасно, а работа по сети с задержками портит базу. Опубликуйте её на веб-сервере или дайте доступ через терминальный сервер.
Сколько портов оставить в диапазоне рабочих процессов?
Каждому рабочему процессу нужен свой порт и порты под соединения. Стандартных 32 портов 1560-1591 хватает небольшому серверу. Сужать диапазон ради удобства проброса рискованно, при нехватке клиенты получат ошибку подключения.
Как проверить, что порт открыт, если на клиенте нет PowerShell?
Используйте telnet адрес 1541 (клиент telnet включается в компонентах Windows) или онлайн-сервис проверки портов. Пустой чёрный экран telnet означает, что соединение установлено.