我需要连接到托管在远程计算机 C 上的第三方数据库(我在 C 上没有登录名),该数据库可以通过 VPN 通过另一台计算机 B(我对 B 有完全控制权)访问。问题在于我远程连接到计算机 B,同样是通过 VPN。我想连接到 C:8000。由于我无法登录 C,因此无法使用 SSH 端口转发或 socat 等。我是否可以以某种方式在 B 上显示 C:8000,以便我可以连接到 B:8000,但访问 C:8000?
答案1
如果您对机器 B 有完全控制权,为什么不能安装 OpenSSH 来进行本地端口转发?
否则,您可以安装一个 Web 服务器(始终在机器 B 上)以充当反向代理。如果机器 B 是 Linux,您可以使用与此类似的配置的 nginx
server {
listen 8000 so_keepalive=on;
deny all;
proxy_connect_timeout 60s;
proxy_socket_keepalive on;
proxy_pass <machine_C_ip>:8000;
}
在 Windows 上,您可以尝试使用 Netsh 命令来获取接口 Portproxy,例如
netsh interface portproxy add v4tov4 listenport=8000 connectaddress=<machine_C_ip> connectport=8000 listenaddress=<machine_B_ip> protocol=tcp