我的主机是一台 Windows 7 笔记本电脑,并且我在 VMware 中运行一个 Ubuntu 11.04 客户服务器。我使用客户服务器进行 Rails 开发。
我的笔记本电脑可以进出网络——家庭网络、工作网络、3G 连接等。
我想设置 ubuntu 服务器以便:
- 无论我的笔记本电脑在哪个网络上,我都可以始终通过相同的 IP 地址访问它(Samba、HTTPD 和 SSH)。我只想从笔记本电脑访问 VM 服务器。这是一台开发服务器。稳定的主机名和动态 IP 也足够了 —— 只要我可以通过 HTTP、SSH 和 Samba 从笔记本电脑访问它,无论笔记本电脑是否连接到网络,也无论网络如何。
- 该服务器将能够连接到互联网(假设我的笔记本电脑具有连接功能),这样我就可以
apt-get
。
这可能吗?我尝试过在 中设置静态 IP /etc/network/interfaces
,但这只适用于我的家庭网络,如果我去其他地方,当我的笔记本电脑不在我的家庭网络上时,我无法访问 VM。
答案1
您的基本问题(具有静态 IP)与 VM 无关。而不是使用桥接网络接口(即客户系统自行联网),理论上您可以使用 NAT 和端口重定向,并将主机系统配置为静态 IP。
不幸的是,无法配置静态 IPv4 地址。在 IPv4 网络中,每个节点都有自己的路由表。通常,大多数节点会将流量发送到其本地网络(以 192.168.、10. 或 172.16-31.* 开头),然后直接发送到目标 PC。不幸的是,网络中使用的地址可以是上述任何地址,并且您的首选地址可能已被占用。
这样我们就得到了一个全局 IPv4 地址。这些地址的路由是在核心互联网中配置的,并且该路由必须由 ISP 和本地互联网网关配置。这是不可行的,并且不允许动态重新寻址。
这移动IP允许这种重新路由的标准尚未得到广泛实施。移动 IPv4 的工作原理是让系统管理您的全球 IPv4 地址并将其重新路由到您的当前位置。
您今天可以使用以下方法实现类似的效果:VPN:设置在互联网上某处安装一个具有静态 IP 的 VPN 服务器,并让您的 Ubuntu Server VM 连接到该服务器。然后,将相关端口从 VPN 服务器重定向到客户端。
如果一个常数姓名映射到当前 IP 地址就足够了,您可以使用动态网络服务。这些为您提供一个域名,您可以使用在虚拟机中运行的客户端实用程序进行更新。这样,您就可以指向my-ubuntu-vm.dyndns-provider.net
当前正在使用的本地地址。
除了注册全局 DNS 名称外,您还可以使用多播域名解析和阿瓦希。 后配置,您的虚拟机将可以通过类似 的名称进行访问my-ubuntu-vm.local
。遗憾的是,多播 DNS 需要额外的软件。虽然许多 Linux 和 Mac OS X 系统开箱即用,但 Windows 系统不支持。您可以安装苹果的 Bonjour(还同时提供 苹果Safari) 在这些系统上。
如果 dyndns 对您不起作用(您确实需要 IP,而不是名称,或者更新时间太不稳定),并且您几乎一直保持网络连接,我建议将 VM 系统移动到具有全局 IP 地址的主机。这与 VPN 解决方案具有相同的缺点(当您未连接到互联网时不起作用,并且您必须支付服务器和全局地址的费用),但设置起来相对容易。
如果你只想从主机本身访问虚拟机Devices
,您可以简单地使用 NAT 和端口转发(现在可以通过->在 GUI 中使用Network Adapters
)。重定向端口(例如,将客户端的 HTTP 服务器从客户机上的端口 80 重定向到主机上的端口 2080),然后使用修改后的端口。分步说明:
- 转到网络选项卡。如果虚拟机正在运行,请选择
Devices
->Network Adapters
。如果没有运行,请右键单击,选择“设置”(或单击“设置”按钮),然后转到“网络”选项卡。 - 确保只有一个适配器,并且将其设置为 NAT。(如果您在此处更改任何内容,则需要重新配置虚拟机)
Advanced
在网络选项卡中打开。- 点击
Port Forwarding
。 - 添加规则。将主机端口设置为高端口(例如 2080),将客户端端口设置为要重定向的端口(HTTP 为 80,ssh 为 22)。
http://localhost:2080
在主机系统的浏览器中输入以访问客户端 HTTP 服务器。
如果你需要服务在相同的端口上运行,你还可以添加一个额外的接口(除了 NAT 接口)并将其设置为仅主机。这将使主机系统上出现一个新界面,您可以使用 VirtualBox 为该网络保留的私有 IP 与客户机进行通信。分步说明:
- 关闭虚拟机。
- 在管理器中右键单击虚拟机并选择
Settings
。 - 转到
Network
选项卡。 - 配置两个接口:一个作为 NAT(允许您的虚拟机访问互联网),另一个作为仅主机(允许您的主机与客户机通信)。
- 启动虚拟机,然后键入
/sbin/ifconfig
以查找其地址。您需要以 开头的地址192.168.
。 - 在主机系统上使用该地址。
答案2
如果您在提供商之间移动服务器,则无法拥有静态 IP 地址。每个提供商都会为您分配它想要的任何地址。如前所述,您可以使用 dyndns 服务将域名指向您的 IP 地址。但是,这通常不起作用,因为可能有防火墙或 NAT 阻止传入连接。
一种可靠但复杂的替代方案是利用已有静态 IP 地址(或更新的 dyndns 域)的现有服务器。如果没有其他选择,您可能可以在家中设置一个(最好是 Linux)。一旦您拥有这样的服务器,请在静态服务器和漫游 Ubuntu 服务器之间设置虚拟专用网络 (VPN)。这将为您的静态服务器和漫游服务器提供私有 IP 地址,无论您的笔记本电脑在哪里,它们都可以通过这些地址进行通信。换句话说,静态服务器和漫游服务器看起来就像是同一 LAN 的一部分。现在,您可以在静态服务器上设置 NAT 和路由,以允许漫游服务器通过 VPN 和静态服务器访问 Internet。您可以在静态服务器上添加端口转发规则,以通过 VPN 将特定端口从静态服务器重定向到漫游服务器。这将使这些服务看起来好像位于静态服务器的 IP 地址,而实际上它们将通过 VPN 由漫游服务器应答。