我有 3 台机器(A、B、C)的场景,它们都位于不同的位置。它们都位于 NAT 后面,只有 B 可以通过站点 B 上的路由器上的转发端口 12345 从外部世界访问。
A = 笔记本电脑 (WIN 10)
B = Raspi(Raspbian 9 Strech)
C = Raspi(Raspbian 10 Buster)
我目前所做的工作:
我可以通过 ssh A => B(putty,通过转发端口 12345) - 没什么大不了的
我可以 ssh C => B (ssh -N -R 2222:localhost:22[电子邮件保护]-p 12345) - 反向 ssh 隧道,使用 crontab 设置以自动运行。
我可以 ssh B => C (ssh -p 2222 localhost)
我可以通过 ssh A => B => C (putty 到 B,然后从那里“ssh -p 2222 localhost”到达 C)
我真正想要的是:
ssh A => C (腻子)
我想要访问网络 C 中的其他设备(从 A),例如网络 C 中的设备的文件系统等。
任何帮助将不胜感激。
答案1
如果我是你,我会考虑使用 OpenVPN 等 VPN 来连接你的三台设备。你写道,设备 B 在 NAT 后面,具有到外部世界的端口转发功能。我会使用相同的端口转发,但将端口 12345 转发到 1194 以用于 VPN;或者简单地将路由器上的端口 1194 转发到设备 B。然后 B 将运行 openvpn 服务器,A 和 C 都将成为 VPN 客户端。你可以在 C 上设置 VPN 客户端,以便在它连接到本地网络时自动启动 VPN 连接。
然后,当您使用笔记本电脑(A)时,您可以启动 VPN 客户端,然后 C 将只是您的 VPN 网络上的另一个主机。
这不完全是 A => C 连接,但它是互连这些网络的一种强大方法。