我如何设置双 SSH 隧道,以便防火墙后面的两台机器 A 和 B 通过 ssh 连接到中央服务器,从而 A 可以通过 VNC 连接到 B?

我如何设置双 SSH 隧道,以便防火墙后面的两台机器 A 和 B 通过 ssh 连接到中央服务器,从而 A 可以通过 VNC 连接到 B?

我需要通过 VNC 从我的机器 A 连接到我朋友 B 的另一台机器。我们俩都无法打开传入端口 - 除非您购买基于静态 IP 的商业计划,否则 ISP 不允许隧道连接。顺便说一下,两者都是 Linux 系统

我们有一个具有完全访问权限的 Web 服务器,我们双方都可以通过 ssh 访问。我们如何设置从任一端到服务器的隧道,以便 VNC 正常工作?

我知道如何在两个系统之间设置 ssh 隧道,并且我相信通过先在 A 上运行 ssh 到 B,然后在 B 上运行 ssh 到 C,来实现 A->B->C 并不难。

但我需要 A->C 和 B->C 而不是 A->B 和 B->C

基本上,我认为我需要一个代理服务器 - 这可以通过 SSH 或某种 Linux 网络魔法来完成吗?

答案1

假设 C 是你们俩(A:您和 B:您的朋友)都可以访问的网络服务器。

C 的设置:将 gatewayports yes 添加到配置中

vim /etc/ssh/sshd_config

在底部添加“GatewayPorts yes”,以便远程主机将监听 0.0.0.0 接口而不是 127.0.0.1 接口

GatewayPorts 是

B 的设置:将本地主机的“port2”转发到远程主机(C)的“port1”

ssh -i auth.pem -R 0.0.0.0:端口1:本地主机:端口2[电子邮件保护]

A的设置:无需转发。

现在您可以使用 VNC 连接到 C 的端口 2,同时实际查看 B 的屏幕。

答案2

这可能是也可能不是您要找的答案,但有两种服务值得检查:

它们的作用大致相同。两者都允许您在多台计算机之间创建虚拟专用网络,而无需进行任何防火墙或端口转发配置。这两种服务都有免费套餐,但如果您需要连接多台计算机,ZeroTier 允许在其免费版本上连接更多计算机。两者都适用于 Linux、Windows 和 Mac OS(ZeroTier 也适用于许多其他平台)。

相关内容