![Переадресация портов для Windows Server, как переадресация портов SSH](https://rvso.com/image/1618342/%D0%9F%D0%B5%D1%80%D0%B5%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20Windows%20Server%2C%20%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%D1%86%D0%B8%D1%8F%20%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2%20SSH.png)
У меня есть сервер Windows 2019, на котором есть много экземпляров виртуальных машин (работающих с использованием HyperV). Каждая виртуальная машина имеет свой собственный частный IP и некоторые приложения, работающие внутри и открывающиеся через порты.
Это выглядит как:
VM1: запущенное приложение nodejs порт 3000, частный IP: 10.10.10.1
VM2: запущенное приложение php порт 3001, частный IP: 10.10.10.2
Теперь я хочу настроить безопасное соединение, чтобы мои коллеги могли получать доступ к приложениям внутри каждой виртуальной машины, не подвергая их воздействию Интернета. Как мне этого добиться?
Если у меня есть Ubuntu Server и SSH, я буду использовать динамическую переадресацию портов, как в этой статье.
Есть ли у Windows что-то альтернативное?
Я прошёл много обучающих курсов, но, похоже, они мне не подходят.
решение1
Я не знаю Windows, но для этого нужно настроить NAT между хостом и гостями. В Hyper-V такая функциональность есть.
Каждый гость (виртуальная машина) будет отвечать внутренне на порту 22, а хосты будут перенаправлять трафик, например, с портов 2222, 2223, 2224 на порт 22 в каждой виртуальной машине.
Затем ваши коллеги смогут запустить SSH-туннель со своих машин:
ssh -L localhost:3001:10.10.10.1:3001 -p 2222 user@<windowserverip>
И после этого они смогут получить доступ к приложению на порту 3001 на своих собственных машинах.