仅主机网络不为虚拟机提供互联网连接

仅主机网络不为虚拟机提供互联网连接

我在桌面上打开了一个虚拟机,其中网络选项为 hostonly 网络。我为虚拟机分配了一个适当的静态 IP。我可以从我的桌面建立到虚拟机的 ssh 连接,也可以从虚拟机 ping 我的桌面。但是,我无法在虚拟机内访问外部网络。

命令ifconfig vboxnet0在桌面上返回:

vboxnet0  Link encap:Ethernet  HWaddr 0a:00:27:00:00:00  
inet addr:10.20.0.1  Bcast:10.20.0.255  Mask:255.255.255.0
inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6132 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:0 (0.0 B)  TX bytes:328130 (328.1 KB)

在虚拟机上,ifconfig eth0命令返回:

eth0      Link encap:Ethernet  HWaddr 08:00:27:a1:65:a1  
inet addr:10.20.0.10  Bcast:10.20.0.255  Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fea1:65a1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:161 errors:0 dropped:0 overruns:0 frame:0
TX packets:122 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:15459 (15.4 KB)  TX bytes:15973 (15.9 KB)

虚拟机的 IP 是静态的。vboxnet0被指定为该虚拟机的虚拟网卡。我应该做哪些进一步的配置才能使用 vboxnet0 提供互联网连接?任何帮助都非常感谢。

我的桌面操作系统:ubuntu 12.04

虚拟机操作系统:ubuntu server 12.04

虚拟化工具:virtualbox 4.3.6 r91406

答案1

这是 HostOnly 的正常行为。只有您的主机才能访问您的虚拟机。如果您希望它能够访问互联网,请使用 NAT 或 Bridge 作为网络选项。

NAT 将使用您的主机作为互联网的中继(但仍在 10.20.0.x 范围内),而 Bridge 将使您的 VM 成为您网络的一部分,就像(可能)192.168.xx 范围内的任何其他计算机一样。

两种解决方案均可行,现在由您选择最适合您的解决方案。

答案2

啊,但这是可以做到的,因为我几周前也遇到过同样的问题。下面是我这样做的方法:

为客户操作系统提供一个主机专用适配器(默认适配器是 vboxnet0),并确保 vboxnet0 执行 dhcp。

安装 squid 代理(sudo apt-get install squid3

打开文件 /etc/squid3/squid.conf 并做以下更改:

A. 找到带有“http_access denied all”的行,并在行首放置 # 将其注释掉。B

. 将以下两行粘贴到文件中:

acl allcomputers src 192.168.56.0/255.255.255.0

http_access allow allcomputers

通过运行以下命令重新启动 squid 3 服务:sudo service squid3 restart

在客户操作系统中,确保网卡设置了 dhcp

打开 Internet Explorer 的 Internet 选项,转到连接选项卡,单击 Lan 设置...,选中代理服务器复选框并将地址设置为 192.168.56.1,端口设置为 3128。Internet

现在可以在客户机上运行,​​但客户机看不到本地网络。

答案3

摘自手册第 98 页:

由于虚拟机未连接到物理网络接口,因此它们无法与主机外部的世界通信。

相关内容