我正在尝试通过 SSH 从网络外部访问由 Apple Airport Extreme 2nd gen 运行的本地网络上的服务器上的虚拟机。我已经在 Airport Extreme 上设置了 SSH 端口转发。在 Ubuntu 上,我运行以下命令连接到 Airport 网络上的虚拟机:
sudo ssh -L 22:local IP of VM:22 AirportIP
然后系统提示我输入路由器的 root 密码。我尝试通过选中“动态全局主机名”选项来设置路由器的用户名、密码和主机名。我还尝试过:
sudo ssh -L 22:local IP of VM:22 username@AirportIP (and also) hostname@AirportIP
这些都不起作用。有人对如何登录机场或如何找到正确的登录名和密码有什么建议吗?此外,有没有更好的方法来访问 VM GUI,而不仅仅是通过端口转发访问终端?(不一定是 ssh 也不是 VNC)
谢谢
答案1
您的 AirPort Extreme 不会运行sshd
。您不需要它的密码。您设置的端口映射意味着它将盲目地将指定公共端口上的数据包转发到您在端口映射中指定的私有 LAN IP 地址和端口。基站不知道它转发的流量恰好是ssh
。
您应该ssh
正常地使用 AirPort Extreme 的公共 (WAN) IP 地址,它会将您的连接尝试转发到您设置端口映射指向的私有 LAN 主机。
ssh VMUserName@AirPortPublicWANIP
(这假设当您设置端口映射时,您将 ssh 端口(端口 22)指向 sshd 在您的私有 LAN 主机上监听的任何端口。如果您指定了不同的端口号,请在命令中指定它ssh
。)
当提示输入密码时,尽管 SSH 可能会认为它要求您输入 AirPortPublicWANIP 的密码,你应该知道您实际上正在与您的 VM 对话,因此请输入您尝试登录 VM 的帐户的密码。
如果您特意使用端口 20 而不是 22,请考虑使用其他备用端口。基站的 NAT 网关代码包含称为“应用层网关”(ALG) 的特殊代码来处理 FTP 流量,而 FTP 使用端口 21 和 20。因此,如果您使用这些端口,可能会违反 FTP ALG。