Как подключиться к хранилищу конфигурации на сервере за NAT, если есть доступ по RDP?

01.06.21

Разработка - Групповая разработка (Git, хранилище)

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

Дано:

  • Требуется работать локально на своём мощном компе и быть подключенным к хранилищу клиента.
  • Клиент ни при каких условиях не хочет поднимать VPN в свою локальную сеть или публиковать хранилище в интернет.
  • У вас есть подключение по RDP к компьютеру в локальной сети клиента с которого вы можете подключиться к хранилищу.
  • Хранилище конфигурации клиента опубликовано по протоколу TCP.

Решение:

  1. Приобретаете белый ip адрес у своего провайдера. У меня провайдер domru, у него это добро стоит всего 20 руб. в месяц.
  2. Поднимаете у себя на домашнем компе ssh сервер.
  3. С помощью ssh клиента Putty в своём rdp сеансе на сервере клиента подключаетесь к своему компьютеру и делаете Remote TCP forwarding для хранилища.
  4. Со своего компьютера подключаетесь к хранилищу через проброшенный порт

Плюсом такого решения для клиента является то, что соединение активно только пока активно ssh подключение из rdp сеанса на сервере клиента. Если вам закроют доступ к rdp, то подключаться к хранилищу вы не сможете.

Минусом такого решения для меня является то, что мой домашний комп уязвим для атаки из сети клиента, т.к. свой логин и пароль мне приходится набирать в сеансе rdp и клиенту ничего не стоит их перехватить.

Далее подробнее по пунктам:
Поднятие ssh сервера

У меня Windows 10. Я воспользовался нативным сервером OpenSSH который можно установить с помощью PowerShell.

Запускаем PowerShell с правами администратора и проверяем установлен ли у нас сервер OpenSSH или нет. Для этого выполняем команду:

 

Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'

 

Как видно из результата команды - сервер у меня уже установлен. Если у вас он не установлен, то выполните команду

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Затем настраиваем службу нашего SSH сервера
Я решил, что меня волнует безопасность моего компьютера, поэтому сервер я всегда буду стартовать только вручную, когда мне это надо:

Set-Service -Name sshd -StartupType 'Manual'

Если вас безопасность не парит, то можете поставить службу в автозапуск:

Set-Service -Name sshd -StartupType 'Automatic'

Затем стартуем службу:

Start-Service sshd

Проверяем, что 22-й порт брандмауера открыт и прослушивается:
 

Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

netstat -na| Select-String '0.0.0.0:22'

Если вы подключены к интернету через роутер, то требуется пробросить какой-нибудь внешний порт на свой компьютер в локальной сети. Я покажу на примере моего роутера tp-link. Для доступа к веб-интерфейсу моего роутера мне нужно перейти в браузере по адресу http://192.168.0.1/ У вас адрес может быть другой.

Для начала зарезервируем в своей локальной сети адрес для своего компьютера. Я зарезервировал для своего компа адрес 192.168.0.101 и в дальнейших настройках буду использовать его. MAC-адрес своего компьютера можно увидеть в списке подключенных клиентов выше.

 

 

Далее выполняем проброс случайного порта роутера на 22-й порт нашего компьютера. Я выбрал порт 2020.

 

 

Подключение к серверу SSH из сеанса RDP

Заходим по RDP на сервер клиента и скачиваем подходящий клиент Putty.exe Ссылка

Запускаем его и настраиваем подключение:


 

В поле Host Name вводите ваш белый ip, который вам выдал провайдер. Порт вводите тот, который пробросили на роутере. У меня это 2020. Сохраняете настройки сессии кнопкой Save. Нажимаете кнопку Open и проверяете, что клиент подключается к вашему домашнему компьютеру. Потребуется ввести логин и пароль пользователя домашнего компьютера.

Если всё получилось, закрываем соединение командой exit.

Теперь требуется сделать обратный проброс порта для того, чтобы мы могли подключится к хранилищу с нашего домашнего компьютера:

 

 

В поле Source Port пишем любой порт, который мы будем использовать в 1С для подключения к хранилищу. У меня это 3333. В поле Destination пишем имя компьютера, на котором развернуто хранилище или localhost, если хранилище находится на том же компьютере, к которому вы подключены по rdp. Стандартный порт хранилища конфигурации 1С - 1542.

Сохраняем настройки подключения на вкладке настроек сессии, открываем SSH соединение по кнопке open, вводим логин и пароль и возвращаемся на свой домашний комп.

Подключение к хранилищу через проброшенный порт

Открываем конфигуратор и подключаемся к хранилищу:

 

 

В пути у нас всегда будет localhost т.к. мы в шаге выше сделали проброс 3333 порта нашего домашнего компьютера через ssh туннель на компьютер к которому мы подключены по RDP. 3333 - это "любой порт", что я пробросил в шаге выше. RepoName - это название опубликованного хранилища конфигурации.

Profit

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

Вступайте в нашу телеграмм-группу Инфостарт

Администрирование Хранилище

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Групповая разработка (Git, хранилище) EDT Программист 1С:Предприятие 8 Россия Бесплатно (free)

Синхронизируйте свой проект EDT с хранилищем конфигурации так же легко, как в git клиенте. По кнопке Pull в проект EDT подтягиваются изменения из хранилища, по кнопке Push ваш коммит из git репозитория проекта EDT улетает в хранилище конфигурации.

09.07.2026    1860    DmitryShehovtsev    4    

18

Архивирование (backup) Групповая разработка (Git, хранилище) Системный администратор Программист Бесплатно (free)

Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).

15.12.2025    10658    nasonkin    18    

31

Инструменты администратора БД Групповая разработка (Git, хранилище) Обновление 1С Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 2.х 1С:Библиотека стандартных подсистем Абонемент ($m)

Обработка, объединяющая в себе использование инструментов БСП по администрированию кластера серверов и запуска скриптов для автоматического обновления конфигурации из хранилища.

4 стартмани

17.11.2025    2979    14    KovrovtsevAS    0    

12

Групповая разработка (Git, хранилище) Бесплатно (free)

Проектная разработка в 1С живет в условиях жестких дедлайнов, меняющихся команд и нестабильных CI/CD. В статье показываем, как быстро и без лишних затрат внедрить Git на ERP-проектах, продать идею себе и команде и избежать типичных подводных камней. Разберем ветвление, подходы к командной работе, интеграцию с таск-трекерами и особенности тяжелых конфигураций.

04.09.2025    21617    bozo    42    

12

EDT Групповая разработка (Git, хранилище) Программист 1С:Предприятие 8 Бесплатно (free)

Плагин, расширяющий функциональность EDT, предоставляя возможность работы с хранилищем конфигурации 1С без использования 1С:ГитКонвертер.

04.08.2025    15074    ZigRinat85    54    

53

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Абонемент ($m)

Позволяет проектировать и выполнять сценарии, состоящие из команд 1С, Git и CMD, а также решать конфликты слияния напрямую из 1С с помощью KDiff3. Предустановлен набор команд для автоматизации сборки CFE-файлов.

1 стартмани

29.07.2025    5768    9    gorsheninsn    6    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1606647 01.06.21 08:16 Сейчас в теме
Добрый день! Спасибо за статью! Очень интересно, а главное понятно написано!!!
2. pavel06 2 01.06.21 12:38 Сейчас в теме
VPN клиент поднимать не хочет, а RDP доступ к серверу давать хочет. Оригинально защищается.
CSiER; Dipod; +2 Ответить
3. Dipod 118 01.06.21 13:43 Сейчас в теме
(2)К сожалению, такова жизнь. Мотивы клиента мне не известны. Согласовать VPN не удалось.
Sinsinmin; +1 Ответить
4. Yashazz 4929 01.06.21 13:49 Сейчас в теме
А что мешает работать на самом РДП? Прямо оттуда? Всегда так делаю, нареканий у клиентов не вызывало. Зачем ещё какой-то комп к этому припахивать - что, терминальная машина совсем слабенькая и/или сервер у клиента никудышный?
6. Dipod 118 01.06.21 14:02 Сейчас в теме
(4) На этом проекте около 40 программистов, конфигурация ЕРП. RDP сервер тормозит под такой нагрузкой. Я помучался и решил сбежать на свой комп.
7. Yashazz 4929 01.06.21 14:22 Сейчас в теме
(6) Я б попросил клиента ещё один РДП организовать в таком случае) Вытаскивать на свой локальный комп, неважно через что, конфу клиента, страдающего избирательной паранойей, чревато. Да и инфраструктура может подвести - интеграция с техникой какой-либо или сторонним ПО, мало ли... Тоже всё на личный комп пробрасывать да дублировать?)
8. Dipod 118 01.06.21 15:22 Сейчас в теме
(7) У нас эти 40 программистов распределены на 4 терминальных сервера, плюс аналитики, тестировщики и консультанты сверху, которых я не посчитал. На этом ресурсы клиента закончились.
14. Yashazz 4929 01.06.21 17:44 Сейчас в теме
(8) Сурово.

В любом случае способ хороший, может пригодиться. Плюсую.
5. пользователь 01.06.21 14:01
Сообщение было скрыто модератором.
...
9. starik-2005 3293 01.06.21 15:22 Сейчас в теме
У меня провайдер domru, у него это добро стоит всего 20 руб. в месяц.
1. А общий прайс? У меня 100 мб/с стоит 199, а белый IP - 150. Итого 349 в месяц. А у Вас там инет стоит 600 рублей, поэтому 20 рублей за IP погоды не сделают.

2. Если у Вас есть роутер собственный, то у вендора 99% есть облако, которое может дать Вам доступ к Вашему роутеру по своему внутреннему DNS (фактически, домен второго уровня в облаке вендора). В итоге будет что-то типа klientxxxyyy.kinetick.com, а дальше внутри себе делаете проброску нужного порта.
10. Dipod 118 01.06.21 15:25 Сейчас в теме
(9)
1. Я плачу 650 руб/мес за 250 мб/с. Плюс 20 руб/мес за белый ip.

2. Спасибо, не знал.
11. starik-2005 3293 01.06.21 15:29 Сейчас в теме
(10)
за 250 мб/с
Зачем Вам столько? А пинг какой? (2ip.ru, например):
Прикрепленные файлы:
12. Dipod 118 01.06.21 15:34 Сейчас в теме
(11) скорость такая? - чтоб было :-) Хочется :-)
Прикрепленные файлы:
13. starik-2005 3293 01.06.21 16:51 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация