我是服务器平台安装和操作方面的新手。为了了解工作原理,我继续在安装在 Ubuntu 11.10 桌面版上的 Virtualbox 上安装 Ubuntu Server (LAMP) 11.10。我使用了本指南在 VirtualBox 上设置 Ubuntu Server 作为主要开发环境这个过程。我在虚拟机上安装了一个 wiki 软件(dokuwiki),因为我打算利用 wiki 来跟踪我的计划和活动。
在上面的文章中,作者提到了这一点:
现在,我可以向您展示如何使用 NAT 访问您的服务器。我不是网络专家……所以可能有更好的方法。但是,我相信使用 NAT 可以让您与外部网络隔绝(例如,在家里或在咖啡馆使用 wifi 时,NAT 应该在这种情况下工作相同。)
我现在正在使用 NAT 配置,但我想确定这是否是最好的方法。由于所有内容仅用于个人/实验,我希望我的 wiki 和其他与网络相关的软件(如 drupal)仅供主机访问,我计划将来在虚拟机上安装这些软件。我既不希望从外部 PC 访问它们,也不希望其他人访问它们。此外,我希望 VirtualBox 上的服务器操作系统能够定期接收在线更新。
因此,有人可以建议我必须选择哪种网络配置吗?
更新:根据答案中的建议,我尝试使用仅主机适配器。选择此选项后,我无法随时使用我的 wiki。问题在于:
- http://localhost:8080/dokuwiki/doku.php。此 URL 不再有效。以前使用 NAT 时,我必须使用这些设置来启用端口转发。我可以有效地使用它。
。
- http://192.168.56.101/dokuwiki/doku.php。只要我没有从主机连接到互联网,此 URL 就有效。一旦我使用 USB 加密狗连接,
wvdial
wiki 就无法访问。
以下是 ping 结果:来自主机:
chethan@chethan-Lenovo:~$ sudo ping 192.168.56.101
[sudo] password for chethan:
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
.
.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
^C
--- 192.168.56.101 ping statistics ---
14 packets transmitted, 0 received, 100% packet loss, time 13104ms
来自访客:
ping 117.2xx.1xx.2xx
connect: Network is unreachable
答案1
NAT 应该可以正常工作;您的虚拟机可以“向外”连接到互联网,但外部事物无法“向内”连接到您的虚拟机。使用仅主机网络将阻止您的虚拟机与互联网建立出站连接,例如下载更新。
答案2
对您来说,最好的解决方案可能是仅主机适配器。此选项允许您创建专用虚拟适配器,主机和客户系统都可以使用。您可以阅读有关仅主机和其他网络选项的更多信息这里
更新:
由于主机和客户系统在同一个网络中,因此您不需要端口转发,只需确保客户系统和主机系统在同一个网络中,例如主机 IP:192.168.64.1
客户 IP:192.168.64.2
掩码:255.255.255.0
现在您可以使用以下方式访问您的 wikihttp://192.168.64.2/dokuwiki/doku.php
答案3
如上所述,请发布输出
sudo ifconfig
在您的主机和客户机上以及在两种情况下(使用 wvdial 的 USB 加密狗和不使用时)都是如此。您的整个问题似乎是由于您切换到“基于主机”后没有使用正确的 IP 来联系客户机。
答案4
正如 mhl 所说,仅主机适配器应该可以工作。我经常将它们用于我的 LAMP 机器。但您最终会获得一个唯一的 IP 地址,它通常与路由器分配的 IP 模式不同。(这样它们就不会发生冲突,例如 10.XXX.XXX.XXX 永远不会与路由器可能运行的 192.168.XXX.XXX 模式发生冲突。
因此,诀窍可能是在您仅使用主机时找到 VirtualBox 为您的机器提供的 IP 地址,一种方法是登录到您的客户机(Ubuntu 对吗?)并在终端运行“ifconfig”。它将列出(虚拟)网络硬件并列出 IP 地址。其中之一应该是关键。
当仅使用主机时,您不需要像在 NAT 中那样将端口从主机转发到客户机,而是应该能够直接访问它...(就像 mhl 所说的那样,但是当您执行 ifconfig 操作时您应该找到该 IP 地址。)