Надежная обратная переадресация портов между ПК с Windows (под NAT) и сервером Linux

У меня следующая топология:

  • Сервер Linux (Ubuntu 20.04) со статическим IP-адресом
  • Windows сервер под NAT без возможности перенаправить порт на этот компьютер

Мне нужен безопасный доступ к порту сервера Windows с моего сервера Linux.

В настоящее время у меня plink.exe , завернутый в службу Windows с помощью инструмент nssm , настроенный как обратная прокси-пересылка, и в целом он работает - но в plink.exe , похоже, нет настроек keep-alive, и это очень ненадежно, соединение разрывается каждый день, и я необходимо перезапустить службу. Также нет возможности настроить службу в nssm.exe , чтобы иметь какую-либо логику «проверки работоспособности» и перезапуска.

Я подумываю написать очень простой инструмент на golang, который будет наблюдать за подключением и перезапустите его, если он потерян, но он выглядит немного взломанным и, возможно, слишком сложным, может быть, я что-то упускаю, и мне интересно, есть ли более простой и надежный способ выполнить такую ​​задачу?

Также я думал об установке msys2 на ПК с Windows и попробуйте использовать клиент openssh вместо plink, но я не уверен, что мне удастся окончательно обернуть его как службу.

0
задан 11 July 2020 в 19:57
1 ответ

Используйте Plink для неинтерактивного SSH-сеанса (так называемые «команды») для выполнения на удаленных машинах Linux в целях автоматизации. Plink никоим образом не предназначен для постоянного использования.

Если я правильно понимаю, ваш компьютер с Windows использует NAT и доступен из вашего источника подключения. И вы не можете включить переадресацию портов, например:

netsh interface portproxy add v4tov4 listenport=22 listenaddress=<WAN IP> connectport=22 connectaddress=<DESTINATION IP>

В таком случае я бы рекомендовал настроить SSH-сервер на компьютере с Windows и использовать функцию SSH-туннеля.

0
ответ дан 14 July 2020 в 11:54

Теги

Похожие вопросы