Где 1С берёт адрес сервера и как превратить его имя в IP за пару минут

· 10 мин

Содержание

Чтобы узнать IP-адрес сервера 1С, откройте свойства базы в окне запуска (кнопка Изменить) и посмотрите поле «Кластер серверов 1С:Предприятия» или путь к каталогу базы. Там почти всегда имя компьютера, а не адрес. Наберите в командной строке ping -4 <имя> — в ответе будет IP.

Способов несколько, и выбирают по тому, кто вы и к чему есть доступ. Пользователю хватит окна запуска и ping. Администратор на самом сервере смотрит ipconfig или ip addr и консоль кластера. Если подозрение, что клиент ходит не туда, куда записано в настройках, помогут TCPView, Монитор ресурсов и Wireshark. Отдельная задача — адрес сервера СУБД: его хранит кластер 1С, а не клиент.

СпособКому подходитЧто покажетНужны права администратора
Окно запуска, Справка → О программепользователюимя сервера или путь к файловой базенет
ping, nslookupвсемIP по имени серверанет
ipconfig, ip addr, netstat на сервереадминистраторувсе адреса сервера и прослушиваемые портыжелательно
Консоль кластера, racадминистратору кластераимена рабочих серверов, порты, сервер СУБДда
Журнал регистрацииадминистратору базыкомпьютер клиента, рабочий серверроль администратора в базе
TCPView, Монитор ресурсов, Wiresharkадминистратору сетифактические соединения клиентадля Wireshark — да
Запросы к MS SQL, PostgreSQLадминистратору СУБДадрес и порт сервера баз данныхдоступ к СУБД

Где записан адрес сервера 1С: строка подключения базы

Любая база в списке запуска хранит строку подключения. По ней сразу видно вариант работы.

  • 🖥 Клиент-серверная база — Srvr="srv1c";Ref="buh";. Здесь srv1c — имя или IP центрального сервера кластера, buh — имя базы на нём.
  • 📁 Файловая база — File="\\srv-files\1C\Buh";. Сервер 1С тут не участвует: адрес нужен у компьютера, где лежит папка с файлом 1Cv8.1CD.
  • 🌐 Публикация на веб-сервере — ws="https://1c.example.ru/buh";. Адрес — это веб-сервер, за которым может стоять отдельный сервер 1С.

Окно запуска

  1. Запустите 1С, в списке баз выделите нужную.
  2. Внизу окна под списком видна строка подключения — там имя сервера или путь.
  3. Чтобы увидеть точнее, нажмите Изменить. Мастер покажет поля «Кластер серверов 1С:Предприятия» и «Имя информационной базы в кластере».

Если в поле стоит srv1c:1641, число после двоеточия — нестандартный порт кластера. По умолчанию это 1541, и в строке он не пишется.

Из уже открытой базы

В режиме 1С:Предприятие откройте Справка → О программе (значок «i» или меню с тремя полосками в шапке). В окне есть строка «Информационная база» с той же строкой подключения. Это удобно, когда база запущена ярлыком и в общем списке её нет.

Разработчик получит то же значение программно: функция СтрокаСоединенияИнформационнойБазы() возвращает строку целиком, её можно вывести в сообщение из внешней обработки.

Файл со списком баз

Список баз пользователя лежит в файле ibases.v8i:

notepad %APPDATA%\1C\1CEStart\ibases.v8i

Каждая база — секция в квадратных скобках со строкой Connect=. Файл удобно смотреть, когда баз много и нужно разом выписать все серверы. Если список приходит централизованно, в каталоге 1CEStart ещё будет 1cestart.cfg со ссылками на общие файлы списков.

Если в строке подключения уже стоит IP вида 192.168.10.15, задача решена. Но не спешите переписывать имена на IP во всех ярлыках: сервер 1С после первого контакта сообщает клиенту имя рабочего сервера, и клиент всё равно должен уметь его разрешить.

Как узнать IP по имени сервера 1С: ping, nslookup, tracert

Имя из строки подключения превращают в адрес стандартными сетевыми командами. Работает с любого компьютера сети, права администратора не нужны.

ping

Откройте командную строку (Win+R → cmd) и выполните:

ping -4 srv1c

Ключ -4 просит IPv4: без него Windows может показать IPv6-адрес, который в настройках 1С обычно не используется. В первой строке ответа будет Обмен пакетами с srv1c [192.168.10.15] — это и есть адрес.

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

nslookup

ping берёт адрес откуда придётся: из DNS, из файла hosts, из кэша. nslookup спрашивает именно DNS-сервер:

nslookup srv1c
nslookup 192.168.10.15

Вторая команда делает обратный запрос: по IP возвращает имя. Если ping и nslookup дают разные адреса, на компьютере есть запись в C:\Windows\System32\drivers\etc\hosts. Откройте его блокнотом от имени администратора и проверьте строку с именем сервера.

В PowerShell то же самое делает Resolve-DnsName srv1c.

tracert

tracert -d srv1c

Команда показывает маршрут до сервера по узлам. Ключ -d отключает обратное разрешение имён, вывод идёт быстрее. Последняя строка — IP сервера. tracert полезен, когда сервер в другом офисе или за VPN: видно, на каком узле теряются пакеты.

Командная строка на самом сервере 1С: Windows и Linux

Когда есть доступ к серверу через RDP или SSH, адрес смотрят прямо на нём. Это единственный способ увидеть все сетевые интерфейсы: у сервера их может быть два и больше.

Windows Server

ipconfig
hostname
netstat -ano | findstr :1541
  • ipconfig — адреса всех адаптеров. Ищите «IPv4-адрес» у адаптера локальной сети.
  • hostname — имя компьютера. Именно его кластер передаёт клиентам.
  • netstat с фильтром по порту 1541 покажет, на каком адресе слушает менеджер кластера. Строка 0.0.0.0:1541 означает «на всех адресах сразу».

Агент сервера слушает порт 1540, менеджер кластера — 1541. Рабочие процессы используют диапазон, по умолчанию 1560–1591. Диапазон задаётся в свойствах рабочего сервера.

Linux

hostname -I
ip -4 addr show
ss -tlnp | grep 154

hostname -I выводит все IPv4-адреса одной строкой. ss покажет процессы ragent и rmngr с портами 1540 и 1541. Если строк нет, служба сервера 1С не запущена.

Утилита rac

На сервере с запущенным сервером администрирования ras кластер можно опросить из командной строки:

rac cluster list
rac server list --cluster=<id кластера>

Первая команда выдаёт идентификатор кластера, имя хоста и порт. Вторая — список рабочих серверов с именами хостов и диапазонами портов. Синтаксис остальных команд смотрите в rac help.

Консоль кластера и конфигуратор: адрес глазами администратора 1С

Консоль администрирования серверов 1С

  1. Откройте оснастку «Администрирование серверов 1С:Предприятия».
  2. Разверните центральный сервер → «Кластеры» → нужный кластер → «Рабочие серверы».
  3. Откройте свойства рабочего сервера. В поле «Имя компьютера» — сетевое имя, рядом указаны порт и диапазон IP-портов.

Если серверов в кластере несколько, клиент может работать с любым из них. Тогда адресов нужно несколько, и каждый пользовательский компьютер должен разрешать все эти имена.

Консоль в дереве показывает и центральный сервер, к которому подключена. Если подключались по IP, он виден прямо в названии узла.

Конфигуратор

В Конфигураторе тоже есть Справка → О программе со строкой подключения. Дополнительно в клиент-серверной базе пункт Администрирование → Активные пользователи покажет, с каких компьютеров работают люди. Это имена клиентов, а не сервера, но они пригодятся, если нужно найти адрес конкретного пользователя.

Не меняйте имя компьютера сервера 1С «чтобы было понятнее». Кластер хранит имя в своих настройках, после переименования службы перестанут находить друг друга, а у пользователей оборвутся сеансы. Такие изменения планируют на нерабочее время и делают по регламенту.

Журнал регистрации: какие адреса он хранит

Журнал регистрации часто открывают в надежде увидеть IP пользователя. Его там нет. Журнал хранит имя компьютера клиента в колонке «Компьютер», а для клиент-серверной базы ещё и рабочий сервер, который обслужил событие, с основным и вспомогательным IP-портом.

Как пользоваться:

  1. В пользовательском режиме откройте Администрирование → Обслуживание, группа «Отчеты администратора» → «Журнал регистрации».
  2. Отберите события по пользователю или по периоду.
  3. Двойной щелчок по событию открывает карточку с компьютером, приложением и сеансом.
  4. Возьмите имя компьютера и разрешите его через ping -4 <имя> или nslookup <имя>.

В журнале, открытом из Конфигуратора (Администрирование → Журнал регистрации), набор колонок настраивается, и среди доступных есть «Рабочий сервер». Так видно, на каком именно сервере кластера шла работа, если их несколько.

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

Сетевые утилиты: TCPView, Монитор ресурсов, Wireshark

Эти инструменты показывают не то, что записано в настройках, а куда клиент подключился на самом деле. Нужны, когда в строке подключения одно имя, а работа идёт через другой сервер, VPN или балансировщик.

Монитор ресурсов (встроен в Windows)

  1. Win+R → resmon.
  2. Вкладка «Сеть» → раздел «TCP-подключения».
  3. Отметьте процесс 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент и Конфигуратор).

В колонке «Удалённый адрес» — IP сервера 1С, в колонке «Удалённый порт» — 1541 или порт из диапазона рабочих процессов.

TCPView

Бесплатная утилита из набора Sysinternals от Microsoft. Скачивать её лучше с сайта Microsoft, а не со сборников программ. После запуска таблица показывает все соединения по процессам. Наберите в фильтре 1cv8 — останутся только соединения 1С с адресами и портами.

Wireshark

Wireshark нужен, когда соединение не устанавливается и надо понять, на каком шаге оно рвётся. Запустите захват на сетевом адаптере, откройте базу и примените фильтр:

tcp.port == 1540 || tcp.port == 1541 || (tcp.port >= 1560 && tcp.port <= 1591)

В колонке «Destination» — адрес сервера. Если клиент шлёт пакеты на 1541, а ответа нет, проблема в брандмауэре или маршруте. Если 1541 отвечает, а на порты рабочих процессов соединения не проходят, закрыт диапазон 1560–1591.

Захват трафика в корпоративной сети согласуйте со службой безопасности. На сервере запускайте Wireshark ненадолго: при большом трафике он заметно нагружает процессор и диск.

IP-адрес сервера СУБД: MS SQL и PostgreSQL

В клиент-серверном варианте 1С хранит данные в СУБД, и это может быть отдельный компьютер. Клиент к нему не подключается: с СУБД работает только кластер 1С. Поэтому адрес ищут на стороне кластера.

Где кластер хранит адрес СУБД

В консоли кластера откройте «Информационные базы» → свойства нужной базы. Поле «Сервер баз данных» содержит имя или IP сервера СУБД, рядом — тип СУБД и имя базы данных. Для MS SQL с именованным экземпляром запись выглядит как sqlsrv\MSSQL1, для нестандартного порта PostgreSQL — pgsrv port=5433.

Дальше имя разрешают уже знакомым ping -4 или nslookup, но с самого сервера 1С: важно, какой адрес видит он.

MS SQL Server

В SQL Server Management Studio выполните запрос:

SELECT
    CONNECTIONPROPERTY('local_net_address') AS server_ip,
    CONNECTIONPROPERTY('local_tcp_port')    AS server_port,
    CONNECTIONPROPERTY('client_net_address') AS client_ip;

server_ip — адрес, на который пришло ваше соединение. Если подключились локально через общую память, поля будут пустыми — подключитесь по сети или по TCP.

Посмотреть, с каких адресов идут соединения рабочих процессов 1С:

SELECT c.client_net_address, s.host_name, s.program_name
FROM sys.dm_exec_connections c
JOIN sys.dm_exec_sessions s ON s.session_id = c.session_id
WHERE s.is_user_process = 1;

В client_net_address будут IP серверов 1С. Так находят «лишний» сервер кластера, о котором забыли.

PostgreSQL

В psql или pgAdmin:

SELECT inet_server_addr() AS server_ip, inet_server_port() AS server_port;

SELECT client_addr, datname, usename, state
FROM pg_stat_activity
WHERE client_addr IS NOT NULL;

Первый запрос возвращает адрес и порт сервера для текущего соединения. При подключении через Unix-сокет он вернёт пустое значение. Второй показывает адреса подключённых клиентов, то есть серверов 1С.

На каких адресах PostgreSQL вообще принимает соединения, задаёт параметр listen_addresses в файле postgresql.conf. Узнать текущее значение: SHOW listen_addresses;. Значение localhost означает, что сервер 1С на другой машине до СУБД не достучится.

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

Можно ли прописать в строке подключения IP вместо имени сервера?
Можно, клиент подключится. Но кластер вернёт клиенту имя рабочего сервера, и если это имя не разрешается, соединение оборвётся с ошибкой подключения. Надёжнее настроить DNS или добавить имя сервера в файл hosts на компьютере клиента.
Как узнать IP компьютера пользователя, который сейчас работает в базе?
В консоли кластера откройте «Информационные базы» → база → «Сеансы» и найдите колонку «Компьютер». Затем выполните nslookup <имя компьютера>. Для веб-клиента адрес пользователя смотрят в журнале веб-сервера.
У сервера 1С два IP. Какой из них указывать?
Тот, что находится в одной сети с пользователями. Проверьте netstat -ano | findstr :1541 на сервере: если служба слушает на 0.0.0.0, подойдёт любой доступный клиенту адрес.
Как узнать адрес, если база в облаке, например 1С:Фреш?
Там вы работаете через веб-публикацию, и адрес — это адрес сервиса из строки браузера. Внутренние адреса серверов 1С провайдер не раскрывает, и для работы они не нужны.
Почему ping показывает IPv6-адрес вместо привычного?
Windows по умолчанию предпочитает IPv6, если он настроен на обоих компьютерах. Добавьте ключ -4: ping -4 srv1c.