![VirtualBox (NAT) 中的开箱即用 CentOS:网络无法访问](https://linux22.com/image/32909/VirtualBox%20(NAT)%20%E4%B8%AD%E7%9A%84%E5%BC%80%E7%AE%B1%E5%8D%B3%E7%94%A8%20CentOS%EF%BC%9A%E7%BD%91%E7%BB%9C%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%20.png)
我的主机是新安装的 Ubuntu 2013.04,无线网络访问开箱即用,所以我没有任何奇怪的网络配置。
在 VirtualBox 4.2.10 中,使用默认 (NAT) 设置,我安装了 CentOS 6.4 最小版本。
安装后,我做的第一件事就是ping 173.194.38.98
(谷歌)并告诉我connect: Network is unreachable
。
我尝试/etc/init.d/network start
以 root 身份运行,但没有任何乐趣。
我下载了一个虚拟机映像并尝试了它:完全相同的问题。
当我安装Ubuntu和Windows虚拟机时,它们能够毫无问题地访问Internet。
这有什么问题吗?
在虚拟机上:
在主机上(除了字节计数之外,值永远不会改变):
eth0 Link encap:Ethernet HWaddr f0:de:f1:c0:ad:b3
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:20 Memory:f3900000-f3920000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:32272 errors:0 dropped:0 overruns:0 frame:0
TX packets:32272 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4263162 (4.2 MB) TX bytes:4263162 (4.2 MB)
wlan0 Link encap:Ethernet HWaddr 60:d8:19:c9:42:59
inet addr:192.168.0.67 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::62d8:19ff:fec9:4259/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1221151 errors:0 dropped:0 overruns:0 frame:0
TX packets:845193 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1438957835 (1.4 GB) TX bytes:133904229 (133.9 MB)
注:类似于这个问题但我认为从 NAT 切换到 Bridge 并不是一个可以接受的解决方案。
答案1
要让 Centos 在 Virtual Box 上运行,请在/etc/sysconfig/network-scripts/ifcfg-eth0
:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
您可能需要重新启动。
答案2
udev 的问题
看我对这个问题的回答:VMWare 是否导致我的 Linux 主机失去网络连接?。一般来说,当你的网络出现时,eth1
而不是eth0
铃声应该响起(至少在 CentOS 6.x 中)。这通常意味着以太网 NIC 受到 NetworkMangaer 的控制,或者 udev 搞乱了 NIC 的检测eth0
。
我通常首先查看以下rules.d
目录udev
:
# /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
您要确保该文件中仅存在一项。如果有多个,那么您需要手动清理此文件,以便只有一个条目并且它指向 eth0。
NetworkManager 的问题
您需要查看的另一件事是 NetworkManager 的设置方式。再次查看另一个 Unix 和 Linux 问题:CentOS在VirtualBox中安装后没有网络接口。我也提供了该问题的答案,其中向您展示了使用 NetworkManager 手动设置有线网络的步骤。
顺便说一句,NetworkManager 现在是安装 CentOS 6.x 时网络的默认设置!