假设我有两台机器,都运行 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 处于维护状态。