Сетевые порты 1С:Предприятия 8.3 — таблица и готовые правила файрвола
Содержание
Для клиент-серверной 1С на сервере открывают входящие TCP-порты 1540 (агент), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). На компьютере пользователя входящие порты не нужны: клиент сам подключается к серверу, а исходящие соединения брандмауэр Windows по умолчанию пропускает.
Дальше всё зависит от схемы. Файловой базе нужен доступ к общей папке (SMB, 445), веб-клиенту и тонкому клиенту через публикацию — 80 или 443 на веб-сервере, серверу 1С — доступ к СУБД (1433, 5432 и т. д.). Ниже — полная таблица портов, правила для Windows и Linux и способы быстро понять, какой порт закрыт.
Как устроено подключение клиента к серверу 1С
Подключение к кластеру идёт в три шага, и на каждом нужен свой порт:
- Клиент обращается к агенту сервера (
ragent) на порт 1540 и узнаёт, где искать кластер. - Затем идёт к менеджеру кластера (
rmngr) на порт 1541. Менеджер выбирает рабочий процесс для сеанса. - Сеанс устанавливается с рабочим процессом (
rphost) на один из портов диапазона 1560–1591.
Отсюда главная ловушка. Если открыть только 1540 и 1541, база в списке видна, первые секунды подключения проходят, а потом клиент падает по таймауту. Рабочий процесс слушает порт из диапазона, и именно его режет файрвол.
Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера в консоли кластера, а не в свойствах самого кластера. Если администратор его сузил или сдвинул, открывать нужно фактический диапазон, а не 1560–1591 по памяти.
Вторая ловушка — имя сервера. Менеджер кластера сообщает клиенту адрес рабочего процесса по имени компьютера, а не по IP. Если клиент это имя не разрешает (другая подсеть, VPN, нет записи в DNS), порты будут открыты, а подключение всё равно не пройдёт. Лечится записью в DNS или строкой в C:\Windows\System32\drivers\etc\hosts на клиенте:
192.168.10.15 srv-1c srv-1c.company.local
Таблица портов сервера 1С:Предприятия
Порты по умолчанию для платформы 8.3. Все — TCP.
| Порт | Служба | Кто подключается | Нужен, если |
|---|---|---|---|
| 1540 | Агент сервера ragent | Клиенты, консоль кластера, веб-сервер | Всегда в клиент-серверном режиме |
| 1541 | Менеджер кластера rmngr | Клиенты, веб-сервер | Всегда в клиент-серверном режиме |
| 1560–1591 | Рабочие процессы rphost | Клиенты, веб-сервер | Всегда в клиент-серверном режиме |
| 1545 | Сервер администрирования ras | Утилита rac, сторонние консоли | Администрируете кластер через rac |
| 1542 | Сервер хранилища конфигураций crserver | Конфигураторы разработчиков | Хранилище работает по tcp:// |
| 1550 | Сервер отладки dbgs | Конфигуратор, EDT | Отлаживаете по протоколу HTTP |
| 475 (TCP и UDP) | Менеджер сетевых ключей HASP | Клиенты и сервер 1С | Защита на сетевых аппаратных ключах |
Консоль администрирования (оснастка MMC) ходит через агент, то есть ей достаточно 1540. Утилита rac и сторонние консоли подключаются к ras, поэтому для них открывают 1545. Сама служба ras должна быть запущена — по умолчанию её нет.
Если на сервере несколько кластеров
Каждый кластер получает свой набор портов. Принято сдвигать «тысячи»: второй кластер — 2540, 2541 и 2560–2591. Порты задаются параметрами строки запуска службы агента:
"C:\Program Files\1cv8\8.3.24.1691\bin\ragent.exe" -srvc -agent -port 2540 -regport 2541 -range 2560:2591 -d "C:\Program Files\1cv8\srvinfo2"
Клиент в этом случае указывает порт в адресе сервера: srv-1c:2541. Номер — порт менеджера кластера, а не агента.
Порты СУБД: MS SQL, PostgreSQL, Oracle
К СУБД подключается сервер 1С, а не клиент. Значит, порт СУБД открывают только для адреса сервера 1С. Пользователям доступ к базе данных напрямую не нужен, и лучше его не давать.
| СУБД | Порт по умолчанию | Протокол |
|---|---|---|
| Microsoft SQL Server | 1433 | TCP |
| SQL Server Browser (для именованных экземпляров) | 1434 | UDP |
| PostgreSQL | 5432 | TCP |
| Oracle Database (listener) | 1521 | TCP |
| IBM Db2 | 50000 | TCP |
Если СУБД стоит на той же машине, что и сервер 1С, порты наружу открывать не нужно совсем.
Именованный экземпляр MS SQL
Именованный экземпляр (например, SQL01\BASE1C) по умолчанию слушает динамический порт, который меняется после перезапуска. Правило на 1433 ему не поможет. Варианты:
- 🔧 в SQL Server Configuration Manager в свойствах протокола TCP/IP экземпляра очистить «Динамические порты» и вписать постоянный порт, затем перезапустить службу SQL Server;
- 🔧 открыть UDP 1434, чтобы служба SQL Server Browser сообщала текущий порт.
Первый вариант надёжнее. В строке подключения базы в 1С можно указать порт явно: SQL01,1435.
PostgreSQL: файрвол — это не всё
Открытый 5432 ещё не значит доступ. PostgreSQL дополнительно проверяет два файла:
- 📄
postgresql.conf— параметрlisten_addressesдолжен включать сетевой адрес (по умолчанию слушается толькоlocalhost); - 📄
pg_hba.conf— нужна строка, разрешающая подключение с IP сервера 1С.
# pg_hba.conf
host all all 192.168.10.15/32 md5
После правки listen_addresses нужен перезапуск PostgreSQL, после правки pg_hba.conf достаточно перечитать конфигурацию. Перезапуск СУБД обрывает сеансы всех пользователей 1С — делайте его вне рабочего времени.
Веб-публикация, тонкий клиент через HTTP и файловый режим
Публикация на веб-сервере
При работе через веб-клиент или тонкий клиент по адресу https://… пользователю нужен единственный порт — 443 (или 80 без шифрования) на веб-сервере. Порты кластера ему не нужны вообще. Поэтому публикация — самый удобный способ дать доступ удалённым сотрудникам: наружу торчит только HTTPS.
Зато сам веб-сервер (IIS или Apache с модулем расширения 1С) подключается к кластеру как обычный клиент. Если веб-сервер и сервер 1С на разных машинах, с веб-сервера должны быть доступны 1540, 1541 и диапазон рабочих процессов, а имя сервера 1С должно разрешаться.
Не публикуйте в интернет порт 80 без перенаправления на 443. Логины и пароли пользователей 1С при этом передаются открытым текстом.
То же касается HTTP-сервисов и веб-сервисов конфигурации: внешней системе нужен только порт веб-сервера.
Файловая база в сетевой папке
Файловая база работает через общий доступ Windows. Клиенту нужен доступ к компьютеру с папкой по SMB — TCP 445. Старые порты NetBIOS (137–139) современным системам не нужны.
В брандмауэре Windows на компьютере с папкой достаточно включить готовую группу правил «Общий доступ к файлам и принтерам» для нужного профиля сети. Кроме порта, пользователю нужны права на чтение и запись в папку базы — без права записи 1С не создаст файлы блокировки.
Подключение по RDP
Если сотрудники работают на терминальном сервере, где установлен клиент 1С, извне открывают только порт RDP — 3389. Порты 1С при этом нужны лишь внутри сети, между терминальным сервером и сервером 1С.
Правила брандмауэра Windows Server для сервера 1С
Правила создаются на сервере 1С, направление — входящее. Быстрее всего — одной командой PowerShell от имени администратора:
New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP `
-LocalPort 1540,1541,1560-1591 -Action Allow -Profile Domain,Private
Если нужны ras и хранилище — добавьте отдельные правила, чтобы потом было понятно, что за что отвечает:
New-NetFirewallRule -DisplayName "1C RAS" -Direction Inbound -Protocol TCP -LocalPort 1545 -Action Allow
New-NetFirewallRule -DisplayName "1C Config Storage" -Direction Inbound -Protocol TCP -LocalPort 1542 -Action Allow
То же через классический netsh (работает и в cmd):
netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540,1541,1560-1591
Через графический интерфейс
- Откройте
wf.msc(Монитор брандмауэра Защитника Windows в режиме повышенной безопасности). - Слева выберите «Правила для входящих подключений», справа — «Создать правило».
- Тип правила — «Для порта», протокол TCP, «Определённые локальные порты»:
1540-1541, 1560-1591. - Действие — «Разрешить подключение».
- Профили — оставьте «Доменный» и «Частный». «Публичный» включайте, только если понимаете зачем.
- Задайте понятное имя, например «1С сервер 8.3».
Ограничение по источнику
Хорошая практика — разрешать порты не всем, а только своей подсети. В свойствах правила на вкладке «Область» укажите удалённые адреса, например 192.168.10.0/24. В PowerShell это параметр -RemoteAddress 192.168.10.0/24.
Альтернатива портам — правило «для программы» на ragent.exe, rmngr.exe и rphost.exe. Минус: путь содержит номер версии платформы (C:\Program Files\1cv8\8.3.xx.xxxx\bin\), и после обновления правила перестают работать. Правило по портам переживает обновление платформы.
Настройка iptables, firewalld и ufw на Linux-сервере
Порты на Linux те же. Выбирайте инструмент, который реально управляет файрволом в вашем дистрибутиве: одновременно править iptables вручную и пользоваться firewalld не стоит.
firewalld (CentOS, РЕД ОС, Astra Linux, AlmaLinux)
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --permanent --add-port=1545/tcp # если нужен ras
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
Без --permanent правило проживёт до перезагрузки. Без --reload постоянное правило не применится сразу.
ufw (Ubuntu, Debian)
sudo ufw allow from 192.168.10.0/24 to any port 1540:1541 proto tcp
sudo ufw allow from 192.168.10.0/24 to any port 1560:1591 proto tcp
sudo ufw status numbered
iptables напрямую
sudo iptables -A INPUT -p tcp -s 192.168.10.0/24 -m multiport --dports 1540,1541,1560:1591 -j ACCEPT
Правило из командной строки не сохраняется после перезагрузки. В Debian и Ubuntu для сохранения ставят пакет iptables-persistent и выполняют sudo netfilter-persistent save.
Если в цепочке INPUT уже стоит запрещающее правило, -A добавит разрешение после него, и оно не сработает. Посмотрите порядок командой sudo iptables -L INPUT -n --line-numbers и при необходимости вставьте правило выше через -I INPUT <номер>.
Не забудьте про сервер СУБД: если PostgreSQL на отдельной машине, на ней открывают 5432 только для IP сервера 1С.
Проверка доступности портов и разбор ошибок
Сначала убедитесь, что служба вообще слушает порт. На сервере:
netstat -ano | findstr ":1540 :1541 :156"
sudo ss -tlnp | grep -E '154[01]|15[6-9][0-9]'
Если порта нет в списке — дело не в файрволе: служба сервера 1С не запущена или работает на других портах.
Затем проверьте доступ с компьютера клиента:
Test-NetConnection srv-1c -Port 1541
nc -zv srv-1c 1541
В выводе Test-NetConnection смотрите строку TcpTestSucceeded. True — порт доступен. Проверьте 1540, 1541 и пару портов из диапазона: какой-нибудь rphost слушает, например, 1560 или 1561 — посмотреть точный номер можно в netstat на сервере.
Быстрый способ понять, виноват ли файрвол: на минуту отключите его на сервере для доменного профиля и повторите подключение. Заработало — значит, не хватает правила. Сразу включите обратно. Делайте это только во внутренней сети, не на сервере, открытом в интернет.
Частые вопросы
Нужно ли открывать порты на компьютере пользователя?
Можно ли сузить диапазон 1560–1591?
Безопасно ли открыть порты 1С в интернет?
Какой порт указывать в адресе сервера при подключении базы?
srv-1c. Для второго кластера пишут явно: srv-1c:2541.