我不确定我想要做的事情是什么,以及它有多安全,但是设置如下:
我只有在工作时才拥有完全的 root 访问权限workpc
。它位于我无法控制的防火墙后面。我workpc
在家时无法访问homepc
。
我还有一台 VPS 机器vps
,在某个地方,它有一个静态 IP,我也可以完全控制它。
homepc
没有静态 IP,也不是 24/7 全天候运行,不像vps
其他的 24/7 全天候运行且具有静态 IP。
理想情况下,我可以在上班时建立从workpc
到 的长期连接。然后当我回家时,我连接到并以某种方式访问 ?vps
homepc
vps
workpc
我对所有机器都有完全的根访问权限,并且所有机器都运行最新的 Linux。
答案1
您没有提到您到底想要哪种类型的访问,SSH、VNC……但有几种选择。
远程访问软件,例如 TeamViewer 或类似软件,您可将其安装在您的计算机上
workpc
,然后可以使用相应的远程客户端从世界任何地方访问它。这可能违反您的公司政策并被网络防火墙阻止。workpc
在您的和之间建立 VPN ,您从到vps
建立 VPN 连接,然后您可以通过 VPN 或 ssh 从 到 连接,并通过 访问其 VPN 地址。您需要设置运行 OpenVPN、WireGuard 或其他类型的 VPN 软件的 VPN 服务器。workpc
vps
homepc
vps
workpc
vps
vps
workpc
SSH 隧道,您使用反向隧道从到建立 ssh 连接vps
,然后使用正向隧道从homepc
到建立 ssh 连接,然后您可以通过这两个隧道从到使用vps
ssh 进行连接。homepc
workpc
例如:
ssh -R 8022:localhost:22 user@vps
,这将从您的workpc
到建立一个 ssh 连接vps
,您将在 上的端口 8022 上创建一个监听器vps
,并且每个到达该端口的连接都将通过 SSH 重定向到 上的端口 22workpc
。
homepc
然后,您从到创建另一个 ssh 连接vps
,例如SSH -L 9022:localhost:8022 vps
,它将在homepc
端口 9022 上本地创建一个侦听器,并且到该端口的每个连接都将通过 SSH 发送到 上的端口 8022vps
,然后进入 ssh 隧道workpc
并转到 上的 ssh 服务器workpc
。然后,您只需与本地主机端口 9022 建立 ssh 连接,即可将信息发送到
workpc
其 ssh 服务器的端口 22。在这种情况下,ssh user@localhost -p 9022
执行的操作与执行的操作相同ssh user@workpc
在这种情况下,您需要在您的服务器上启用 sshd 服务
workpc
,因为它需要在端口 22 上运行 ssh 服务器。如果您想使用您的服务器上的其他端口或服务workpc
进行访问,您可以将第一个反向隧道中的端口 22 替换为您要访问的相应端口workpc