我有一台运行 OS X el capitan 的 Mac 笔记本电脑(计算机 A),我想通过 SSH 远程访问它。由于这台计算机始终处于学校网络中,因此我无法获得静态公共 IP 地址。经过研究,我发现我可以
- 设置 mac os x 在我的学校网络上请求某个私有 IP
- 使用 ddclient 始终将我的计算机的公共 IP 更新到 nsupdate.info,以便静态 URL 始终指向计算机 A
前面提到过,计算机 A 位于我的学校网络中。我如何使用距离学校较远的家庭网络中的计算机(计算机 B)通过 ssh 访问计算机 A?
假设我已将计算机 A 设置为使用 DHCP 配置 IPv4,手动 IP 地址为 172.27.133.200,并使用 ddclient 更新 testurl.nsupdate.info 以始终指向计算机 A 的公共 IP 地址。是否有一个命令可以使用这两个地址,以便我可以连接,例如(概念上)
userOnComputerB$ ssh [email protected]@testurl.nsupdate.info
我也欢迎在问题范围内的其他解决方案。我咨询了其他涉及反向隧道的问题和转发端口,但不明白它们如何适用于此,因为我认为我无法控制学校网络路由器的端口转发。
最后,如果像上面这样的命令是不可能的,那么导致这样的命令不可能的技术或 ssh 设计原因是什么?
答案1
当您通过 SSH 连接到 testurl.nsupdate.info 时,连接将终止于您学校的防火墙(或其他为您的内部 IP 172.27.133.200 实施 NAT 的设备)。防火墙不知道这需要转发到您的内部 IP,除非防火墙管理员配置了端口转发,但正如您所说,您无法控制这一点。
如果你仔细想想,防火墙存在的主要原因正是防止外部人员连接到内部设备(防火墙管理员批准的连接除外)。
然而,通常防火墙做允许您的内部设备通过 SSH 连接到外部,这样您就可以使用该出站 SSH 连接来隧道化入站连接,这将在涉及反向隧道的问题您提到的。阅读时请记住“lappy”是您的学校计算机,“remotey”是您的家用计算机。