Каждый системный администратор, обслуживающий клиент-серверные базы «1С:Предприятия», рано или поздно сталкивается с классической проблемой: пользователи из удаленных офисов, подключенные через VPN, или сотрудники из соседних подсетей (VLAN) не могут подключиться к базе. При этом возникает характерная ошибка: «server_addr=Server-1C descr=11001 (0x00002AF9): Этот хост неизвестен».
Самое удивительное, что тонкие клиенты на macOS и Linux в этой же сети работают без нареканий, а утилита nslookup на рабочих станциях Windows успешно сопоставляет имя сервера с его IP-адресом. Традиционным «костылем» в данном случае является ручная пропись соответствия адреса и имени в файле hosts на каждом клиентском компьютере Windows. Однако при штате в десятки и сотни машин этот метод превращается в административный кошмар.
В этой статье мы подробно разберем, почему возникает такое поведение Windows, как устроен механизм авторизации платформы 1С и как раз и навсегда решить проблему на уровне сетевой инфраструктуры и настроек кластера 1С, полностью отказавшись от редактирования файлов hosts.
---
Для начала проанализируем ситуацию и поймем, почему операционные системы ведут себя по-разному и в чем кроется корень проблемы.
1. Ограничения широковещательных запросов в Windows
Когда Windows-клиент пытается разрешить короткое (односложное, или single-label) имя хоста (например, просто Server-1C), система по умолчанию использует следующую цепочку протоколов:
hosts.Если сервер 1С и клиент находятся в одной подсети, NetBIOS или LLMNR успешно находят сервер по его короткому имени. Но если клиент подключается из другой подсети через маршрутизатор (роутер, VPN-шлюз), широковещательный трафик (Broadcast/Multicast) физически блокируется маршрутизатором. Запрос не доходит до сервера.
2. Различия в поведении Windows и Unix-подобных систем (Linux, macOS)
Резолверы в Linux и macOS при запросе короткого имени сразу отправляют стандартный одноадресный (unicast) DNS-запрос на DNS-сервер, указанный в настройках подключения (например, на ваш роутер). Роутер, зная статическую запись, мгновенно возвращает IP-адрес.
Windows в целях безопасности по умолчанию считает, что короткие односложные имена без точек не должны отправляться во внешние DNS-серверы, и пытается разрешить их локально с помощью заблокированных маршрутизатором LLMNR/NetBIOS. В итоге имя остается неразрешенным.
3. Специфика алгоритма подключения платформы 1С
Рассмотрим, как именно клиентское приложение 1С подключается к серверу баз данных:
10.3.10.10).Server-1C).Server-1C и пытается установить с ним новое соединение. Здесь и происходит сбой, так как Windows-клиент из другой подсети не может разрешить короткое NetBIOS-имя.Таким образом, даже если вы пропишете в адресе базы IP-адрес, сервер 1С все равно принудительно заставит клиента обращаться к нему по сетевому имени хоста.
---
Самый правильный и надежный способ решить проблему — использовать полное доменное имя (FQDN) с суффиксом (например, .local или корпоративным доменом) и зарегистрировать его в кластере 1С. Разберем этот процесс по шагам.
Шаг 1. Настройка DNS-сервера на маршрутизаторе или локальном сервере
Нам необходимо сделать так, чтобы имя сервера имело доменную часть. Например, вместо короткого имени 1c-pc мы будем использовать 1c-pc.local.
Перейдем в настройки вашего DNS-сервера (это может быть встроенный DNS в роутере Cisco, Mikrotik или корпоративный DNS-сервер Windows/Linux) и создадим статическую запись (A-запись):
Имя хоста (FQDN): 1c-pc.local
IP-адрес: 10.3.10.10 (IP-адрес вашего сервера 1С)
Если вы используете маршрутизатор под управлением Cisco IOS, команда в консоли будет выглядеть следующим образом:
ip host 1c-pc.local 10.3.10.10
Шаг 2. Настройка DNS-суффиксов на клиентах (через DHCP)
Чтобы Windows понимала, куда направлять запросы коротких имен, настроим автоматическую передачу DNS-суффиксов.
На вашем DHCP-сервере, который раздает IP-адреса клиентам в подсетях и VPN-пулах, настройте передачу следующих параметров (DHCP Options):
local (или ваш корпоративный домен, например, company.ru).Благодаря этому Windows-клиент, получив настройки сети по DHCP, при попытке обратиться к короткому имени 1c-pc автоматически преобразует запрос в 1c-pc.local и отправит его на ваш DNS-сервер. Запрос будет успешно разрешен.
Шаг 3. Регистрация FQDN-имени в консоли администрирования 1С
Теперь нам нужно заставить сервер 1С возвращать клиентам правильное имя с суффиксом .local.
Кластеры -> Локальный кластер -> Рабочие серверы.1С-PC). Платформа не позволит нам просто отредактировать его или удалить, так как он назначен Центральным сервером кластера.Рабочие серверы -> Создать -> Рабочий сервер.1c-pc.local (также можно указать прямой IP-адрес сервера 10.3.10.10). Порт оставляем стандартным (1540).После этого в списке у вас будет два рабочих сервера: один со старым коротким именем, другой — с новым FQDN-именем или IP-адресом. Клиенты, подключающиеся по адресу 1c-pc.local, теперь будут успешно проходить авторизацию и не потеряют связь с рабочими процессами. Для массовой смены адресов подключения в списках баз пользователей домена можно применить скрипт централизованной замены имени сервера в файле ibases.v8i через GPO.
---
Если вы хотите полностью перевести кластер 1С на работу по IP-адресам без использования имен и не можете удалить старый центральный сервер через графическую консоль, мы можем отредактировать конфигурационные файлы кластера напрямую. Рассмотрим этот системный метод.
Важно: Перед выполнением этих действий обязательно остановите службу сервера 1С и сделайте резервную копию каталога с настройками кластера!
Разом разберем шаги по изменению конфигурации:
services.msc.C:\Program Files\1cv8\srvinfo (или C:\ProgramData\1C\1cv8).srvinfo, скопировав ее в безопасное место.1cv8wsrv.lst, расположенный в корне каталога srvinfo.
{1,
{"1C-PC","Локальный кластер",1541,"",0,0}
}
{1,
{"10.3.10.10","Локальный кластер",1541,"",0,0}
}
reg_1541) и откроем файл 1CV8Clst.lst.Ctrl + H) найдем все упоминания старого короткого имени сервера (например, 1C-PC) и заменим их на IP-адрес 10.3.10.10 или полное имя 1c-pc.local.После перезапуска службы зайдем в консоль администрирования. Мы увидим, что имя центрального рабочего сервера изменилось на IP-адрес или заданный FQDN. Теперь менеджер кластера будет возвращать клиентам корректный маршрутизируемый адрес, и необходимость в правке файлов hosts отпадет.
---
Если вы не хотите вручную править файлы конфигурации .lst и при этом графическая консоль не позволяет вам переименовать или удалить центральный сервер, воспользуемся штатной консольной утилитой rac, которая поставляется вместе с платформой 1С.
Для этого нам понадобится запущенная служба администрирования ras (Remote Administration Server). Если она не запущена, запустим ее из командной строки:
"C:\Program Files\1cv8\8.3.XX.YYYY\bin\ras.exe" cluster --port=1545
(Где 8.3.XX.YYYY — версия вашей текущей платформы 1С)
Теперь с помощью утилиты rac мы можем подключиться к кластеру, просмотреть список рабочих серверов и изменить их параметры. Разберем пример сценария:
"C:\Program Files\1cv8\8.3.XX.YYYY\bin\rac.exe" server --cluster=ИДЕНТИФИКАТОР_КЛАСТЕРА localhost:1545 list
"C:\Program Files\1cv8\8.3.XX.YYYY\bin\rac.exe" server --cluster=ИДЕНТИФИКАТОР_КЛАСТЕРА localhost:1545 update --agent-host=10.3.10.10 ID_РАБОЧЕГО_СЕРВЕРА
Этот способ является наиболее безопасным и «чистым» с точки зрения методологии 1С, так как изменения вносятся через программный интерфейс администрирования API, что исключает случайное повреждение структуры файлов разметки параметров кластера. Для удобного управления параметрами серверов через службу ras без использования командной строки подойдёт графическая консоль администрирования серверов 1С на базе ras.
---
Мы детально проанализировали проблему доступности сервера 1С в распределенных корпоративных сетях и пришли к выводу, что ручная правка файлов hosts на рабочих станциях — это следствие некорректной первоначальной настройки кластера и сетевых служб.
Для построения надежной и масштабируемой ИТ-инфраструктуры рекомендуем придерживаться следующих правил:
имя.домен.local.hosts усложняет администрирование сети. Любое изменение IP-адреса сервера потребует от вас повторного обхода всех компьютеров пользователей. Решайте задачу централизованно на уровне DNS-сервера и настроек кластера 1С.