Нужна помощь в настройке SSH туннеля для клиента 1С

Приветствую Всех и прошу помощи у знающих людей.

Суть проблемы такая, изучаю возможность подключения через интернет клиента 1С Бухгалтерии по SSH туннелям.


Дано:

Сервер 1С (Linux)

Компьютер в локалке с этим сервером, и с доступом к нему из вне по SSH (Linux)

Клиент с интернетом  (Windows)


Что по теории:

Гипотетически через SSH туннель можно пустить любой TCP трафик, для этого нужно лишь правильно настроить промежуточный узел, и поднять до него туннель. SSH туннель по Windows буду поднимать с помощью plink или putty.

Для работы 1С клиента используются TCP порты 1540, 1541, 1560-1591

netstat на сервере 1С выдает, что прослушиваются три порта 1540, 1541, 1560


Что по практике:

Настраиваю промежуточный узел, в sshd_config устанавливаю PermitTunnel yes

Настраиваю клиент Windows

plink.exe -N -L 1540:IP_1C_SERVER:1540 -L 1541:IP_1C_SERVER:1541 -L 1560:IP_1C_SERVER:1560 IP_MID_COMP user@MID_COMP

В 1С в настройках базы указываю сервер localhost. Проверяю что в hosts есть запись 127.0.0.1 localhost.

Поднимаю туннель и пробую запускать 1С, и получаю:

Ошибка определения принадлежности клиентского и серверного процессов одному компьютеру

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


Пытался найти корень проблемы самостоятельно но интернет не дает вразумительных пояснений по данной ошибке, везде где упоминается данная ошибка предлагается прописать ip сервера в hosts в ручную, но это не имеет смысла потому как у меня уже есть запись 127.0.0.1 localhost.

Было подозрение, что клиенту 1С не нравится обращение к localhost потому, что он сам что то там поднимает. Поднял виртуальный петлевой интерфейс на клиенте и настроил все на него.

plink.exe -N -L 10.0.0.1:1540:IP_1C_SERVER:1540 ...

Поднял туннель и получил тот же результат.

Ошибка определения принадлежности клиентского и серверного процессов одному компьютеру

Тут у меня тупик. Есть предположения что это?

Понимаю, что изобретаю велосипед, но так надо. Получится ли?


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

Лига Сисадминов

1.5K постов17.6K подписчиков

Добавить пост

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

9
DELETED
Автор поста оценил этот комментарий

Ебать наркомания.

Могу предположить, что 1ске нужно обращаться не на собственный интерфейс. Сделайте прокладку не на локалхосте, а на другом компе, и обращайтесь к нему. Опционально через хост имя заменить, если ему так хочется.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Ну уровень упоротости средний, видали бред и покрепче. А предложение интересное попробую.

показать ответы
Автор поста оценил этот комментарий

Может открыть ещё порты 1560-1591. Возможно в процессе запуска нужен один из этих портов?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Проверял netstat-ом что там слушается, и это только три порта 1540, 1541, 1560. Ради эксперимента добавлял остальные, положительного результата это не дало.

показать ответы
1
Автор поста оценил этот комментарий

А с пк пинг и пр до 192.168.1.22 проходит?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

пинг пройти не сможет так как туннелируется только tcp протокол. Обмен пакетами до сервера идет, туда 560 байт обратно 9, так три раза и ошибка.

показать ответы
3
Автор поста оценил этот комментарий
Я думаю что топикастер хочет позаботиться о безопасном соединении через ключ до OneAss, без впн и с минимумом открытых портов. Чтоб кинул скрипт юзверю, все само забегало, без маршрутов, тупняков c принтерами и прочим. Просто платформа стоит у клиента, трафик до сервера в тунель завернут, все работает как в ЛВС.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Да, идея была такая, но что то пошло не так.

показать ответы
10
Автор поста оценил этот комментарий
Проблема кроется в определении имени сервера 1с на клиентской машине(лучшего идентификатора для сервера 1С-ники не придумали), поэтому если вы обращаетесь по имени localhost или по ip, сервер не может интерпретировать что вы от него хотите, строго нужно указывать в hosts domain_name машины с сервером 1С. Проблема тянется ещё с 11-13 года. Я подходил к решению по-другому, делал терминалку, поднимал тунель до терминалов, а там уже давал клиентский доступ к 1С.

З.Ы. не увидел что сервак на linux: что в хосте на сервере прописано?
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

а вот про хост на сервере я что то забыл, в нем есть запись IP_ADDR  NAME_SERVER но она отличается от записи на клиенте. Нужно попробовать привести к одному имени.

показать ответы
4
Автор поста оценил этот комментарий

Можно даже без putty, если win10. В командной строке

1.)  set DISPLAY=127.0.0.1:0.0

2.) ssh -Y user@servername_IP '/opt/1cv8/x86_64/8.3.22.1704/1cv8'

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Сейчас не могу проверить, но похоже совет дельный.

3
Автор поста оценил этот комментарий

Советуют добавить в файлик hosts ещё и ip сервера 1с.


Например наш сервер называется SERVER_1C, а его IP-адрес 192.168.1.22, то файл будет выглядеть так:


#IP-адрес ИмяСервера

127.0.0.1 localhost

192.168.1.22 SERVER_1C


Локал хост 1с не всегда корректно обрабатывает - уже наталкивались на это.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Так там так и записано, и на сервере и на клиенте.

Сервер:

127.0.0.1 localhost

192.168.1.22 SERVER_1C


Клиент:

127.0.0.1 localhost

10.0.0.1 SERVER_1C


Туннель как раз на локальный адрес(на машине клиента) 10.0.0.1 и создается

показать ответы
3
Автор поста оценил этот комментарий

Ну уровень упоротости средний, видали бред и покрепче. А предложение интересное попробую.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

А собственно я уже все это пробовал. В виде другого компа использовал виртуальный луп интерфейс, настроил ему серый адрес, прописал в hosts. Результат тот же.

Вот бы узнать что значит "Ошибка определения принадлежности клиентского и серверного процессов одному компьютеру" с одинэсного на человеческом.

показать ответы
Автор поста оценил этот комментарий
может и по моей проблеме найдется решение

Ошибка определения принадлежности клиентского и серверного процессов одному компьютеру
https://forum.infostart.ru/forum72/topic296726/

раскрыть ветку (1)
Автор поста оценил этот комментарий

Я так понял это какие то грабли в самом клиенте 1с. Т.е. если происходит попытка соединения на localhost (а с прокси или впн именно так и происходит) у него шарики за ролики заходят. Попробуйте впн поставить не на этой же машине а где нибудь в локалке. Или смените впн например на zerotier.

Автор поста оценил этот комментарий

А чем не устраивает клиент 1С на сервере? Тогда можно было бы не городить промежуточную машину. Я из поста просто не понимаю, что ты хотел сделать. Можешь на примере "У Пети было 5 яблок, одно откусил, сколько осталось?" объяснить. Я понял так, что есть клиент с WIN и установленной платформой. Требуется запустить 1С-ку на клиенте с развернутой базой на сервере? И чтобы запускалась сама база, минуя список баз?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Я из поста просто не понимаю, что ты хотел сделать.
#comment_258648639
Требуется запустить 1С-ку на клиенте с развернутой базой на сервере? И чтобы запускалась сама база, минуя список баз?

нет

1
Автор поста оценил этот комментарий

ударим костылями по бездорожью так сказать.

давайте попробуем с пробросом VNC (5900) либо вообще XRDP (3389) https://losst.pro/ustanovka-xrdp-v-ubuntu-20-04

раскрыть ветку (1)
Автор поста оценил этот комментарий

Так далеко копать меня не просили ))) Но варианты мне знакомые. XRDP тяжеловат по моим наблюдениям. Правда это давно было, может что то поменялось.

показать ответы
Автор поста оценил этот комментарий

Зачем? Интересно просто. Не будет ли она глючить как с RemootAPP. Год назад точно проблемы были с всплывающими окнами в типовых конфигурациях. Если у тебя получится отпишешь инструкцию, если не жалко? Мне для общего развития. И да еще вопрос. А не достаточно ли пробросить саму платформу, а там уже добавлять КС-базу? В том смысле, что по SSH не нужно серверные порты кидать.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Если у тебя получится отпишешь инструкцию, если не жалко?

В общем пока получилось пробросить по ssh туннелю только X11. На промежуточной машине был водружен клиент 1С под линукс, на виндовом клиенте поднял связку putty + VcXsrv. В настройках линукса sshd_conf указал ForwardX11 yes. На виндовой машине в настройках putty указал Enable X11 и запуск команды /opt/1cv8/x86_64/8.3.22.1704/1cv8.

Запускаю VcXsrv потом сеанс putty, все, 1с-ка открывает окна можно работать.


Не совсем то, что я хотел, но это хотя бы работает.

показать ответы
1
Автор поста оценил этот комментарий

если уж мы говорим о частном случае, а не про организацию полноценной работы для кучи человек таким образом, то почему бы не попробовать X11 forward и запускать клиента на том самом компе https://debian-by.livejournal.com/6161.html

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нашел современного клона xming называется VcXsrv. Очень приятно удивил, пока все работает и выглядит презентабельно. Оставлю этот вариант как резервный.

1
Автор поста оценил этот комментарий

если уж мы говорим о частном случае, а не про организацию полноценной работы для кучи человек таким образом, то почему бы не попробовать X11 forward и запускать клиента на том самом компе https://debian-by.livejournal.com/6161.html

раскрыть ветку (1)
Автор поста оценил этот комментарий

Так то работает, но xming кривоват (или OneAss) не могу развернуть окно на весь экран, а иногда панель инструментов обрезается. В качестве эксперимента пойдет но работать с таким тяжело.

показать ответы
Автор поста оценил этот комментарий

У нас после ввода пароля требовал 1561 порт.

раскрыть ветку (1)
Автор поста оценил этот комментарий

До стадии введения пароля не доходит.

Автор поста оценил этот комментарий
Совет товарища @rodent81, не помог?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет, т.к. совет описывает то, что уже есть.

Автор поста оценил этот комментарий

ну вот тож самое тока вместо клиента у человека браузер и там http://localhost даж ставить ниче не надо

раскрыть ветку (1)
Автор поста оценил этот комментарий

Есть причины почему не используется web интерфейс. Этот способ мне знаком, но обстоятельства не дают мне воспользоваться этим вариантом.

показать ответы
Автор поста оценил этот комментарий
Дополню ещё, на серваке firewall корректно настроен?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну внутри сети все работает замечательно.

показать ответы
1
Автор поста оценил этот комментарий
Это обязательно прям, вечно этот костыль от OneAss подбешивает
раскрыть ветку (1)
Автор поста оценил этот комментарий

К сожалению не прокатило. Поправил hosts на клиенте, указал тоже самое имя, что и в hosts на сервере. Ошибка та же что и была.

показать ответы
Автор поста оценил этот комментарий

Зачем? Интересно просто. Не будет ли она глючить как с RemootAPP. Год назад точно проблемы были с всплывающими окнами в типовых конфигурациях. Если у тебя получится отпишешь инструкцию, если не жалко? Мне для общего развития. И да еще вопрос. А не достаточно ли пробросить саму платформу, а там уже добавлять КС-базу? В том смысле, что по SSH не нужно серверные порты кидать.

раскрыть ветку (1)
Автор поста оценил этот комментарий
А не достаточно ли пробросить саму платформу, а там уже добавлять КС-базу?

Можно чуть подробнее? Не понял.

показать ответы
Автор поста оценил этот комментарий

А на 1С лицензия позволяет удаленное использование?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Версия сетевая, и ошибка явно не из числа лицензионных.

2
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да, имя прописано руками в hosts, но проблему это не решает.

Автор поста оценил этот комментарий
Поверь телнетом доступность портов 1540, 1541, 1560. Возможно тебе нужно полностью прокинуть в туннель диапазон портов 1560-1591 т.к 1с будет брать рандомный порт из этого диапазона. Можно ещё tcpdump ом посмотреть трафик
раскрыть ветку (1)
Автор поста оценил этот комментарий

Доступность к портам есть(проверено), весь диапазон адресов пробрасывать не обязательно, на сервере слушается только три порта. Похоже там какое то ограничение в самом клиенте 1С, что то вроде авторизации на уровне протокола, или защита, что бы пользователь не смог использовать несетевуй версию как сетевую.

показать ответы