分页: 1 / 1

[问题]virtualbox中的虚拟机如何设置成想局域网中的机器一样?

发表于 : 2007-12-21 12:15
百草谷居士
就是说把虚拟机接入到局域网(真实的,和主机相连接的),分配一个局域网的ip地址,和主机,包括主机以外的其他机器,共同组成一个局域网,可以像真实的局域网一样方便的使用。
在vmware中可以将网络设置为 桥接 模式,从而轻松的实现这个功能。而在vbox中我已经实验了一天,也没有成功。
有没有搞成功的,参考一下?

发表于 : 2007-12-21 12:25
windwiny

代码: 全选

#!/bin/sh
# vim:set ft=sh:

## 2007-09 windwiny   vboxbridgedrun.sh
## 使用前自行修改  id,ip,gw,eth?,br?,tap?  等相关参数,

# VirtualBox Bridging VirtualBox 实现桥接模式
## 参考 http://www.oceanboo.cn/read.php?55

#  Ubuntu 里安装软件包
## sudo apt-get install uml-utilities bridge-utils
## ---------------------------------------------------------------------

function usage() {
    echo -e  "$RED Usage:
    $GREEN sudo `basename "$0"` {start|stop}  $WHITE\n"
}

if [ `id -u` -ne 0 ]; then
    echo " must root can run this "
    usage
    exit 1
fi


. /lib/lsb/init-functions
[ -e /etc/lsb-base-logging.sh ] && . /etc/lsb-base-logging.sh || true

if [ -f ~/MYIP ] ; then
	source ~/MYIP
else
	IP=192.168.1.243 && NETMASK=255.255.255.0 && GW=192.168.1.1
fi

function start() {
#	echo -e "$GREEN  `basename "$0"` START  $WHITE"
#	log_begin_msg "$GREEN  `basename "$0"` START  $WHITE"
	log_begin_msg "`basename "$0"` START"
	log_end_msg 0

	# Create a tap device with permission for the user running vbox
	# 建立一个使用者(user)有权限的设备tap?,-u 参数为自己用户名 或 id
	tunctl -t tap0 -u n1 # 不能用 `id -u`,因为使用sudo 执行时id为0
	tunctl -t tap1 -u n1
	tunctl -t tap2 -u n1
	tunctl -t tap3 -u n1
	chmod 0666 /dev/net/tun

	# Bring up eth? and tap? in promiscuous mode
	# 将eth?和tap?网卡界面设为混杂模式(Promiscuous)
	ifconfig eth0 0.0.0.0 promisc
	ifconfig tap0 0.0.0.0 promisc
	ifconfig tap1 0.0.0.0 promisc
	ifconfig tap2 0.0.0.0 promisc
	ifconfig tap3 0.0.0.0 promisc

	# Create a new bridge and add the interfaces to the bridge.
	# 建立新的桥接界面(bridge),並把 eth?, tap? 加入bridge
	brctl addbr br0
	brctl addif br0 eth0
	brctl addif br0 tap0
	brctl addif br0 tap1
	brctl addif br0 tap2
	brctl addif br0 tap3

	# 下面是两种获取IP的方式,可以自由选择,把不需要的注释掉就好了。
	# 将bridge设成静态IP。XXX都分别对应IP、子网掩码、网关。
	ifconfig br0 $IP netmask $NETMASK up
	route add default gw $GW
	# 将bridge设成动态DHCP分配IP。
	# dhclient br0
}


function stop() {
#	echo -e "$GREEN  `basename "$0"` STOP  $WHITE"
#	log_begin_msg "$GREEN  `basename "$0"` STOP  $WHITE"
	log_begin_msg "`basename "$0"` STOP"
	log_end_msg 0

	## 刪除 tap?
	tunctl -d tap0
	tunctl -d tap1
	tunctl -d tap2
	tunctl -d tap3
	##
	## 停止 br?
	ifconfig br0 down
	## 将 tap?, eth? 移出bridge
	brctl delif br0 eth0
	brctl delif br0 tap0
	brctl delif br0 tap1
	brctl delif br0 tap2
	brctl delif br0 tap3
	## 刪除 br?
	brctl delbr br0
	##

	## 自定义恢复IP地址,默认网关
	ifconfig eth0 $IP netmask $NETMASK up
	route add default gw $GW
}

case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    restart)
	stop
	start
	;;
    *)
	usage
	exit 1
	;;
esac

exit 0
sudo vbox.sh start / stop

发表于 : 2007-12-22 16:26
百草谷居士
我的宿主机是windows2000 server,虚拟机是ubuntu7.10。

发表于 : 2007-12-22 16:36
晶晶守护神
如果是你无线网卡 现在还不行~~~建立 好了 也上不了网的

发表于 : 2007-12-22 16:42
hubert_star
而且桥接网络有时表现确实也不好,尤其是你要经常换网络的情况下

发表于 : 2007-12-23 9:27
sevk
2楼的东东不错,收藏了.

发表于 : 2007-12-24 8:16
百草谷居士
windows2000server,好像无法建立桥接,怎么办呢?

发表于 : 2008-01-02 10:59
百草谷居士
顶一下。
在windows2000server下真的无解吗?

发表于 : 2008-01-02 15:45
ljj_jjl2008
参考我的设置,我设置成功了。
viewtopic.php?t=89163

发表于 : 2008-01-02 22:02
百草谷居士
谢谢楼上的XD
不过我的宿主机是windows2000server,你的宿主机是ubuntu,现在我的问题是如何 在windows2000server下实现桥接,而不是如何在ubuntu下实现桥接。

发表于 : 2008-01-03 10:43
ljj_jjl2008
那更好办,先在虚拟机设置里面网络链接模式上选择桥接,然后点击一个带+号的按钮建立一个虚拟网卡,会出现安全提示说什么没有通过安全认证,点继续安装,然后到网上邻居上右击,选配置网络,在里面把两个网卡都选择上,右击,菜单里面有建立网桥,最后需要设置网桥的DNS等。

发表于 : 2008-01-06 8:52
百草谷居士
呵呵,在windows xp上或者windows2003上有建立网桥的选项,在windows2000上是没有的。