我有两台电脑,一台运行 Big Sur 的 MacBook Pro 和一台运行 Ubuntu 20.04 的台式机。我住在一栋提供有线互联网连接的大楼里。我有一个本地 WiFi 设置,可以连接到 MacBook Pro 和 Linux 机器。我经常在本地网络上使用 ssh,没有任何问题。
然而,大约一周后,我必须搬走,把台式机留下。我需要通过互联网访问我的 Linux 机器。我尝试通过手机将 MacBook Pro 连接到互联网来测试远程访问是否有效。虽然计算机可以浏览网页,但我无法通过 ssh 访问 Linux 机器。
我该如何实现这一点?我认为我的路由器位于 NAT 后面,因为路由器报告的 IP 地址与我从 找到的 IP 地址不同https://www.whatismyip.com/
。
对于 SSH,我已打开 WAN 端口 60000 和 LAN 端口 22,以转发到我的 Linux 机器。需要注意的是:无论我移动到哪里,我都无法访问网络。我可以连接到它,但我不确定该网络上阻止了什么。MacBook Pro 的 IP 地址也可能会更改。
当我不在的时候,与我的 Linux 机器建立 SSH(和 VNC)连接的最可靠的方法是什么?
答案1
最可靠的方法是更难的一步 - 设置 VPN(例如 OpenVPN,最好在路由器上,尽管您可以使用另一个盒子并将端口转发到该盒子)。然后通过 VPN 连接进行 SSH 连接。通过使用(例如基于 UDP 的标准 OpenVPN)隧道,您将在网络中获得一个 IP 地址,该地址不与您连接的任何连接绑定,并且您有一个额外的加密层。它还允许您使用 VNC。
不过,我怀疑您要找的答案是打开 WAN 端口上的端口 22,或者从远程计算机指定端口 6000(而不是使用端口 22 上的默认端口)。在基于命令行的客户端上,可以使用类似
ssh -p 60000 ip.addr.of.server
虽然通过 SSH 使用 vnc 并不容易,但您仍然可以执行“X Forwarding”,这将允许您在远程计算机上运行图形应用程序并在本地计算机上显示终端。为此,您需要在 SSH 上启用 X Forwarding,并且您可能还需要启用压缩
ssh -p 60000 -CX ip.addr.of.server