您可以通过 SSH 反向隧道连接到 VPN 吗?

您可以通过 SSH 反向隧道连接到 VPN 吗?

假设我有两台机器,都运行 Linux;

机器 A 正在运行 VPN 服务器并且位于 NAT 后面。

机器B是VPN客户端。

机器 A 创建从自身到机器 B 的反向 SSH 隧道,并公开机器 B 上的一个端口,该端口连接回机器 A 上运行的 VPN。

如何通过 SSH 反向隧道从机器 B 连接到机器 A 的 VPN 服务器?

答案1

SSH 隧道仅适用于 TCP,因此必须将 VPN 服务器配置为使用 TCP 进行连接。您可以像连接机器 A 一样连接机器 B 上的隧道端点。换句话说,只需替换客户端配置中的 IP 地址和目标端口即可。

答案2

假设我们有这样的设置:

  • 机器B有公共域名machine.b,端口22将访问机器B的SSH服务器。
  • 机器 A 的本地 IP 地址为 192.168.10.2,其 VPN 服务器使用端口 1194。

通过反向 SSH 连接建立 VPN 连接的步骤:

  • 机器 A 使用以下命令与机器 B 建立 SSH 连接:ssh -i "/path/to/key/file" -R 2500:192.168.10.2:1194[电子邮件保护]-p 22
  • 机器 B 建立到 127.0.0.1:2500 的 VPN 连接

结果,从机器 B 到 localhost(127.0.0.1)端口 2500 的连接将通过 SSH 隧道重定向到机器 A 上的 192.168.10.20 端口 1194,这是机器 A 的 VPN 服务器。

我总是使用此设置作为我的 DIY VPN 服务器,以防公司的 VPN 处于维护状态。

相关内容