У меня следующая топология:
Мне нужен безопасный доступ к порту сервера Windows с моего сервера Linux.
В настоящее время у меня plink.exe
, завернутый в службу Windows с помощью инструмент nssm
, настроенный как обратная прокси-пересылка, и в целом он работает - но в plink.exe
, похоже, нет настроек keep-alive, и это очень ненадежно, соединение разрывается каждый день, и я необходимо перезапустить службу. Также нет возможности настроить службу в nssm.exe
, чтобы иметь какую-либо логику «проверки работоспособности» и перезапуска.
Я подумываю написать очень простой инструмент на golang, который будет наблюдать за подключением и перезапустите его, если он потерян, но он выглядит немного взломанным и, возможно, слишком сложным, может быть, я что-то упускаю, и мне интересно, есть ли более простой и надежный способ выполнить такую задачу?
Также я думал об установке msys2
на ПК с Windows и попробуйте использовать клиент openssh вместо plink, но я не уверен, что мне удастся окончательно обернуть его как службу.
Используйте Plink для неинтерактивного SSH-сеанса (так называемые «команды») для выполнения на удаленных машинах Linux в целях автоматизации. Plink никоим образом не предназначен для постоянного использования.
Если я правильно понимаю, ваш компьютер с Windows использует NAT и доступен из вашего источника подключения. И вы не можете включить переадресацию портов, например:
netsh interface portproxy add v4tov4 listenport=22 listenaddress=<WAN IP> connectport=22 connectaddress=<DESTINATION IP>
В таком случае я бы рекомендовал настроить SSH-сервер на компьютере с Windows и использовать функцию SSH-туннеля.