我个人建议查看免费的开源 STunnel,看看它是否符合您的要求。
https://www.stunnel.org/index.html
这可以通过命令行、它自己的 GUI 运行,也可以作为可以在启动时自动启动的 Windows 服务运行。
Stunnel 可以充当客户端从本地计算机到远程服务器的隧道(并且可以选择为客户端提供隧道以连接到本地计算机上的端点)。
基本原则是您编辑配置文件以提供本地端口到远程主机和端口组合的映射。
默认配置文件中包含了全面的示例; Windows版本可以在这里查看:
https://www.stunnel.org/config_windows.html
我使用它连接到托管在 Azure 上的 Redis 缓存服务,我通过添加一个简单的条目来连接,如下所示:
; ***************************************** Example TLS client mode services
[redis-cli]
client = yes
accept = 127.0.0.1:6380
connect = xxxxxx.redis.cache.windows.net:6380
基础很简单;您声明在端口 6380 上接受与本地计算机 (127.0.0.1) 的连接,并且正在连接到指定的远程主机和端口。有很好的文档可用于其他场景。
现在,最初的问题没有指定您需要传递什么类型凭据,或者客户端应用程序是什么。在我遇到的场景中,将凭据传递给连接的是客户端,STunnel 处理端口转发。
或许可以在此处查看 Stunnel 的身份验证选项:
https://www.stunnel.org/auth.html
理想情况下,提供更多背景信息。