我有一个在远程 VirtualBox 上运行的 Ubuntu 13.10 实例,我需要为某人维护它。我正在尝试弄清楚如何通过 SSH 进入这个实例。
Ubuntu 已安装 OpenSSH,但到目前为止,我只能从主机 (Windows 8) 通过 SSH 连接到客户机。我需要能够从远程位置通过 SSH 登录。
以前有人尝试过这个吗?
主机位于标准 WiFi 路由器后面,而客户机配置了桥接适配器,这意味着在路由器上,VirtualBox 有一个 IP 地址。
然而,外界无法看到这个 IP。
我一直在考虑使用 DynDNS 或 No-IP 之类的东西来尝试访问这台机器。但一直找不到有效方法让它工作。
还有其他方法可以通过 SSH 连接到该实例吗?
答案1
只要您的虚拟机具有路由器可见的 IP,您就可以使用以下方法进行设置。我在 3 台虚拟机上进行了此当前设置。
如果你已经设置了 SSH,则可以跳过此处的设置部分
首先,我们要确保 SSH 端一切正常。从安装开始:
sudo apt-get install openssh-server
导航到你的 sshd_config 文件
sudo nano /etc/ssh/sshd_config
指定所需的端口。完成后保存并退出文档,然后使用以下命令获取机器的 IP:
ifconfig
从您的主机通过 Web 浏览器访问您的路由器管理页面(可能为 192.168.0.1)并设置端口转发 SSH 规则。这将指向您在 ssh_config 文件中指定的端口上的 VM 的 IP 地址。
保存并重启路由器。现在使用油灰或者任何你喜欢的东西从另一台机器连接到你新配置的 SSH 系统外部 IP和指定端口
如果您只需要从一台机器连接作为额外的安全措施,您可以使用 Putty 设置私钥以进行服务器验证。有关此内容的指南可在此处找到这里
答案2
也许您可以在 wifi 路由器上配置 NAT:结合特定端口(这里是 22),例如:从 Internet(远程位置),当我尝试使用端口“22”访问“IP”时,路由器必须将请求转发到虚拟主机。这样,您只需要一个 IP,并使用不同的端口来区分联系的主机。
互联网 => 带 NAT 的路由器 => VM
如果没有 nat,我就会成为被联系的主机。
(对不起我的英语不好 !)
答案3
在虚拟机的虚拟机设置中,使用“桥接”选项启用网络适配器。这样它就可以连接到与主机相同的网络,并且可以以相同的方式通过 ssh 进行访问。
答案4
看起来你需要设置转发端口在你的路由器上。
由于您的虚拟机位于路由器后面,因此它将获得自己的内部 IP 地址(通常为 192.168.xx)。为了从外部世界访问虚拟机,您需要告诉路由器将所有请求转发到内部网络上的虚拟机。
您可以选择要公开的任何路由器端口,只要将其转发到虚拟机上的正确端口即可。(出于安全考虑,将服务公开到公共互联网时通常使用非标准端口)。
此网站或许能帮助你入门:http://portforward.com/english/routers/port_forwarding/。
动态域名系统不是必需的,但在您的情况中可能有用。当您的公共 IP 地址有可能发生变化时(大多数家庭互联网连接都是这样),请使用 DynDNS。它与公共域名结合使用。
DynDNS 会定期检查您的公共 IP,并在 IP 地址发生变化时将您的域更新为新的 IP 地址。这样,您就可以始终从 www.yourdomain.com 访问您的网络,因为它始终指向最近分配的 IP。