我有一台笔记本电脑、一台服务器(静态 IP)和一台电脑(动态 IP)。
PC 通过 OpenVPN 服务连接到服务器。我想使用它通过服务器从我的笔记本电脑 SSH 到这台 PC。我认为这是 SSH 到这台计算机的最简单方法,因为它使用动态 IP 地址。
有可能吗?如果可以,该怎么做?
答案1
由于 PC 具有动态地址,因此必须为其分配主机名。
- 如果动态 IP 位于您的网络内部,并且您控制 DHCP/DNS 服务器(例如 Dnsmasq),则可以让其分配主机名。
- 如果动态 IP 是由 ISP 分配的,请使用 DDNS 服务(例如 DynDNS)为您的 PC 分配主机名。
一旦你的 PC 有了正确的主机名,你就可以将你的服务器设置为 SSH 跳转主机:
- 在服务器和 PC 上安装笔记本电脑的公共 SSH 密钥。
在你的笔记本电脑中
~/.ssh/config
,添加以下内容Host <PC_hostname> ProxyJump <server_hostname>
有两种不使用 DDNS 的替代方案。
让 PC 在服务器上转储其 IP:
user@server:~/pc-ip-addr.txt
PC每隔 1 分钟转储一次其 IP 。- 在笔记本电脑中,读取文件并通过 SSH 连接到 PC 的 IP。
使 PC 与服务器保持永久的 SSH 连接:
- 在个人电脑中,
ssh user@server -R 2222:localhost:2222
- 在笔记本电脑中,
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 地址。