В практике разработчика и администратора 1С часто возникает ситуация, когда доступ к базе предоставлен, но технические подробности реализации инфраструктуры (где физически находится сервер, какая СУБД используется) остаются неизвестными. Особенно часто это случается при работе через RDP на промежуточных серверах. Разберем подробно, как расшифровать строку адреса сервера и получить максимум информации о системе.
Для начала проанализируем структуру адреса name1.name2.local. Это не веб-ссылка, а FQDN (Fully Qualified Domain Name) — полное доменное имя компьютера в локальной сети. Разберем его по частям:
Таким образом, мы имеем дело с обычным серверным соединением, а не с веб-клиентом, даже если формат записи кажется непривычным.
Чтобы понять, где физически или виртуально находится сервер, нам нужно узнать его IP-адрес и проследить путь к нему. Рассмотрим несколько инструментов:
1. Использование утилиты nslookup
Откроем командную строку (cmd) на том же компьютере, где установлена 1С, и введем команду:
nslookup name1.name2.local
Эта команда обратится к DNS-серверу и вернет IP-адрес целевой машины. Если адрес начинается на 192.168.x.x, 10.x.x.x или 172.16.x.x — сервер находится внутри вашей локальной сети.
2. Трассировка маршрута
Проанализируем путь прохождения пакетов с помощью команды:
tracert name1.name2.local
Если в списке переходов (хопов) только один-два узла, сервер находится в том же здании или дата-центре. Если узлов много и встречаются имена провайдеров — сервер находится удаленно.
3. Косвенное определение операционной системы
Выясним, какая ОС установлена на сервере (Windows или Linux), с помощью команды ping. Обратим внимание на параметр TTL (Time To Live):
TTL = 128 (или близко к этому) — перед нами, скорее всего, Windows.TTL = 64 — это, вероятнее всего, Linux.Когда информация о базе данных закрыта, а админы недоступны, можно прибегнуть к программным и техническим хитростям.
Самый простой и быстрый способ — заставить СУБД выдать ошибку. Текст сообщения об ошибке почти всегда содержит название продукта. Рассмотрим пример кода, который можно запустить в консоли запросов или обработке:
ВЫБРАТЬ
1 / 0 КАК Поле1
При выполнении этого запроса платформа 1С транслирует его в SQL. В зависимости от СУБД, вы получите разные сообщения:
Каждая СУБД «слушает» свой стандартный порт. Мы можем проверить, какой порт открыт на сервере БД (адрес сервера БД можно подсмотреть в свойствах базы в консоли администрирования 1С). Попробуем подключиться через telnet или Test-NetConnection в PowerShell:
Если на сервере 1С поднят сервис RAS, мы можем получить подробную информацию программно. Разберем команду для консоли:
rac infobase --cluster=[ID-кластера] summary [ID-базы]
В выводе данной команды будет параметр dbms, который четко укажет тип СУБД (например, PostgreSQL или MSSQLServer).
Если вы открываете «Администрирование серверов 1С Предприятия» и видите пустой список, это не значит, что кластера нет. Его нужно добавить вручную, чтобы увидеть структуру баз.
name1.name2.local.1540.После добавления вы увидите дерево кластера. Раскройте ветку Информационные базы, найдите свою базу и откройте её Свойства. Там в явном виде будут прописаны:
Важно: Для выполнения этих действий у вашей учетной записи должны быть права администратора кластера 1С. Если список баз не раскрывается, значит, текущий пользователь RDP не авторизован в консоли администрирования.
Таким образом, комбинируя сетевые инструменты диагностики (nslookup, ping) и встроенные возможности платформы 1С (провокация ошибок, консоль администрирования), мы можем полностью восстановить картину серверной инфраструктуры, даже не имея прямого доступа к серверу базы данных.