使用 SSH 创建虚拟主机

使用 SSH 创建虚拟主机

我有以下设置:

  • 本地网络上的一台计算机连接到另一个网络上的 VPN,我们将其称为机器 A
  • 本地网络上的一台机器可以访问机器 A,但无法访问 VPN。我们将其称为机器 B。

现在,如果我想从机器 B 访问 VPN 内的主机,我当然可以进行 ssh 转发或链式 ssh 调用(例如ssh machine-a ssh machine-vpn),但这只能给我有限的访问权限(即使用该-L选项在 SSH 隧道中指定的端口数)。有没有办法使用 SSH 创建某种“虚拟主机”,这样 SSH 中与该虚拟主机的任何连接都将转发到 VPN 内的目标主机,而不管端口是什么?换个方式提出这个问题:

从机器 A:

ssh -L 16000:machine-vpn:22 machine-a #creating the initial tunnel to the SSH port on machine-vpn
#now ssh -p 16000 localhost does an SSH to the machine behind the vpn
#create the Virtual Host somehow using SSH, call the virtual host vhost
ssh vhost #this will ssh to the machine behind the vpn, using ssh tunnel
ftp vhost #this will ftp to the machine behind the vpn, using ssh tunnel
#etc.

有什么办法可以做这样的事吗?

答案1

SSH 还支持动态转发。通过指定动态端口,ssh 客户端将创建一个 SOCKS5 代理,然后您可以使用它来转发所有流量并使其离开远程主机。

ssh -D2000 machine-a

您可以配置大多数程序(浏览器和 ftp 等)以使用 socks 代理。在此示例中,您需要做的就是将 localhost:2000 指向为 SOCKS 代理。

答案2

查看最新版本的 OpenSSH 中的Tunnel和选项。TunnelDevice

相关内容