我正在运行 Ubuntu 9.04、内核 2.6.28-18 和 vmware-server 2.0.1。
我正在尝试设置虚拟 linux 机器以使用桥接接口而不是 NAT 或仅主机。NAT 和仅主机都可以正常工作。运行时vmware-config.pl
,我将 /dev/vmnet0 设置为桥接 eth0,将 /dev/vmnet1 设置为仅主机,将 /dev/vmnet8 设置为 NAT。
当我运行时,ifconfig -a
我看到物理接口 (eth0)、vmnet1 和 vmnet8 都已启动并分配了 IP 地址。我还看到了其他各种在这里不相关的接口。
在 Web 控制台中,当我要求桥接来宾机器的网卡时,它指出桥接设置为“不可用”并显示禁用的设备图标。在客户机内部,我确实有一个 eth0 接口,我可以将其设置为我喜欢的任何东西,但是它看不到我的外部网络或主机。
我确实在我的 vmware/hostd.log 中看到错误状态:“设备 vmnet0 上的网桥未运行。虚拟机将无法与主机或网络上的其他机器通信”,这证实了问题。
vmnet-bridge 正在运行,我在进程表中看到以下内容:
/usr/bin/vmnet-bridge -d /var/run/vmnet-bridge-0.pid -n 0 -i eth0
我确认 /var/run/vmnet-bridge-0.pid 文件存在并且它指向正确的进程。
我看到了这个与 Ubuntu 9.04 和桥接接口有关的问题,其中发布者确定由于 vmware-config.pl 脚本中的缺陷而没有构建 vsock 库。我应用了补丁,重新运行脚本,并确认 vsock.ko 和 vsock.o 在我的 /lib 目录结构中。vsock 确实出现在lsmod
.
我的 /etc/vmware 目录有 /vmnet1 和 /vmnet8 子目录。它们包含按预期运行 DHCP 和 nat 类型服务的配置实用程序。没有 vmnet0 子目录。我的 /etc/vmware/netmap.conf 文件确实显示了 vmnet0 的条目;我从脚本中配置的名称和设备。
我的 /dev 目录包含设备 vmnet0 到 vmnet9。它们的主要设备号为 119,次要设备号为 0 到 9。/proc/net/dev 显示 vmnet1 和 vmnet8 的统计信息,但不显示 vmnet0。我有一个 /proc/vmnet 目录,但它是空的。
当我使用 启动或停止 vmware 服务时/etc/init.d/vmware start
,我看到以下内容:
Starting VMware services:
Virtual machine monitor done
Virtual machine communication interface done
VM communication interface socket family: done
Virtual ethernet done
Bridged networking on /dev/vmnet0 done
Host-only networking on /dev/vmnet1 (background) done
DHCP server on /dev/vmnet1 done
Host-only networking on /dev/vmnet8 (background) done
DHCP server on /dev/vmnet8 done
NAT service on /dev/vmnet8 done
VMware Server Authentication Daemon (background) done
Shared Memory Available done
Starting VMware management services:
VMware Server Host Agent (background) done
VMware Virtual Infrastructure Web Access
Starting VMware autostart virtual machines:
Virtual machines done
那里似乎没有任何问题。
我在做什么 n00b 事情以使 vmnet0 并且只有 vmnet0 没有显示在接口列表中?
哦!在我发布这个之后,我找到了答案。显然 vmnet-netifup 没有为 vmnet0 运行。一旦我跑了:
它工作得很好。现在为什么它没有在其他两个自动启动时自动启动?这仍然是一个悬而未决的问题。