如何通过 VPN 连接到服务器的设备 SSH?

如何通过 VPN 连接到服务器的设备 SSH?

我有一台笔记本电脑、一台服务器(静态 IP)和一台电脑(动态 IP)。

PC 通过 OpenVPN 服务连接到服务器。我想使用它通过服务器从我的笔记本电脑 SSH 到这台 PC。我认为这是 SSH 到这台计算机的最简单方法,因为它使用动态 IP 地址。

有可能吗?如果可以,该怎么做?

答案1

由于 PC 具有动态地址,因此必须为其分配主机名。

  1. 如果动态 IP 位于您的网络内部,并且您控制 DHCP/DNS 服务器(例如 Dnsmasq),则可以让其分配主机名。
  2. 如果动态 IP 是由 ISP 分配的,请使用 DDNS 服务(例如 DynDNS)为您的 PC 分配主机名。

一旦你的 PC 有了正确的主机名,你就可以将你的服务器设置为 SSH 跳转主机:

  1. 在服务器和 PC 上安装笔记本电脑的公共 SSH 密钥。
  2. 在你的笔记本电脑中~/.ssh/config,添加以下内容

    Host <PC_hostname>
    ProxyJump <server_hostname>
    

有两种不使用 DDNS 的替代方案。

让 PC 在服务器上转储其 IP:

  1. user@server:~/pc-ip-addr.txtPC每隔 1 分钟转储一次其 IP 。
  2. 在笔记本电脑中,读取文件并通过 SSH 连接到 PC 的 IP。

使 PC 与服务器保持永久的 SSH 连接:

  1. 在个人电脑中,ssh user@server -R 2222:localhost:2222
  2. 在笔记本电脑中,ssh user@server "ssh user@localhost -p2222"

答案2

当您设置 OpenVPN 连接时,它会在每个设备上创建一个额外的 IP 地址。最简单的方法是建立 PC 的 OpenVPN 地址,并在建立 OpenVPN 后通过该 IP 地址连接到 PC。

还可以指示 OpenVPN 通过 VPN 通告内部 LAN 路由,并连接到计算机的内部 IP 地址 - 您在这里遇到的困难是确定计算机的内部 IP 地址 - 您可能无法在这里使用动态 DNS 服务,因为它们将选择外部 IP 地址而不是计算机的内部 IP 地址。您可以始终为计算机静态分配地址 - 直接分配或通过指示路由器根据计算机的 MAC 地址动态分配静态 IP 地址。

相关内容