当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]vbox中,两台虚拟机如何联成局域网(已解决)
帖子发表于 : 2008-07-28 2:39 

注册: 2008-07-19 12:44
帖子: 50
送出感谢: 0 次
接收感谢: 0 次
主机ubuntu8.04,通过有线宽带路由上网,VBox1.5.6,
首先根据前人的介绍,安装两个软件包uml-utilities和bridge-utils,用apt-get还是新立得自己选吧。
根据前人提供的脚本文件,内容如下:
代码:
#!/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。这里的4个lv是我启动VBox的用户名,你应改成你自己的用户名。这里一气整了4个虚拟网卡tap0~tap3,你可以同时运行4台虚拟机。
   tunctl -t tap0 -u lv # 不能用 `id -u`,因为使用sudo 执行时id为0,
   tunctl -t tap1 -u lv
   tunctl -t tap2 -u lv
   tunctl -t tap3 -u lv
   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。IP、子网掩码、网关,这些在第34行设置。
   #ifconfig br0 $IP netmask $NETMASK up
  # route add default gw $GW
   # 将bridge设成动态DHCP分配IP。我的宽带路由能自己分地址,所以我选择DHCP
    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

将这段代码复制,粘贴到文本文件,找个地方保存为vnet.sh,修改文件的权限,增加执行权限(见图)。
在保存vnet.sh文件的目录下,根据需要执行下面的命令
启动虚拟网卡
sudo ./vnet.sh start
停止虚拟网卡
sudo ./vnet.sh stop
重启虚拟网卡
sudo ./vnet.sh restart

在VBox中设置,虚拟机1(win2000)网卡设成Host interface,主机界面tap0,见图。虚拟机2(winxp)网卡设成Host interface,主机界面tap1,见图。
启动虚拟机1和虚拟机2,在虚拟机里分别设置其网卡获取IP方式为DHCP,设置工作为WORKGROUP,可以查看虚拟机获取的IP地址,见图。在虚拟机的网上邻居中就可以找到相邻的计算机,见图。设置共享资源,即可。


附件:
Screenshot-winxp [运行中] - VirtualBox OSE-1.png
Screenshot-winxp [运行中] - VirtualBox OSE-1.png [ 69.83 KiB | 被浏览 1706 次 ]

Screenshot-winxp [运行中] - VirtualBox OSE.png
Screenshot-winxp [运行中] - VirtualBox OSE.png [ 211.68 KiB | 被浏览 1690 次 ]

Screenshot-win2000 [运行中] - VirtualBox OSE.png
Screenshot-win2000 [运行中] - VirtualBox OSE.png [ 41.41 KiB | 被浏览 1679 次 ]

Screenshot-winxp设置.png
Screenshot-winxp设置.png [ 37.56 KiB | 被浏览 1677 次 ]

Screenshot-win2000设置.png
Screenshot-win2000设置.png [ 37.91 KiB | 被浏览 1666 次 ]

文件注释: vnet.sh属性修改
Screenshot-vnet.sh 属性.png
Screenshot-vnet.sh 属性.png [ 19.07 KiB | 被浏览 1408 次 ]



最后由 xxmw 编辑于 2008-07-28 5:09,总共编辑了 1 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-07-28 2:40 

注册: 2008-07-19 12:44
帖子: 50
送出感谢: 0 次
接收感谢: 0 次
主机是ubuntu8.04


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-07-29 14:08 
头像

注册: 2006-08-25 10:37
帖子: 736
送出感谢: 0 次
接收感谢: 0 次
我也刚刚安了两台虚拟机,正愁连不上局域网

楼主的帖子可谓及时。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-07-30 4:50 

注册: 2008-07-19 12:44
帖子: 50
送出感谢: 0 次
接收感谢: 0 次
我的路由限制分配的地址数是两个,无奈。
只好将4台虚拟机的网卡设为intrnal network 网络名称自定,构成局域网,第一台虚拟机(debian)添加设置第二块网卡为NAT,启动虚拟机设置IP地址192.168.160.1~192.168.16.254,掩码255.255.255.0,debian虚拟机的NAT网卡设为DHCP。debian虚拟机安装软件包squid3,设置代理服务器,其他虚拟机在浏览器中指定代理服务器192.168.16.1:8080,都可以正常上网了。
squid配置文件/etc/squid3/squid.conf
代码:
#代理服务器监听的内网网卡IP地址和端口
http_port 192.168.16.1:8080
#缓存的大小,内存的1/3~1/2大小
cache_mem 64 MB
cache_dir ufs /var/spool/squid3 4096 16 256
cache_effective_user proxy #squid默认的用户
cache_effective_group proxy #squid默认的组
dns_nameservers 10.0.2.3   #域名解释服务器,连接NAT的那块网卡自动获得的
#日志
cache_access_log /var/log/squid3/access.log
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log
#代理服务器主机名
visible_hostname 192.168.16.1
#代理服务器管理员邮箱
cache_mgr pingyuanv@126.com
#允许所有IP地址的客户机连接
acl all src 0.0.0.0/0.0.0.0
http_access allow all

建立缓存目录
sudo /usr/sbin/squid3 -z
启动squid
sudo /etc/init.d/squid3 start
停止squid
sudo /etc/init.d/squid3 stop
重启squid
sudo /etc/init.d/squid3 restart
重新加载配置文件
sudo /etc/init.d/squid3 reload


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-07-31 3:48 

注册: 2008-07-19 12:44
帖子: 50
送出感谢: 0 次
接收感谢: 0 次
squid在客户端设置代理,太麻烦,干脆用虚拟机(debian)弄个软路由。
debian虚拟机的设置
网卡0 intrnal network 网络名自定
网卡1 NAT
启动debian,设置
eth0
192.168.16.1
255.255.255.0
eth1
dhcp

安装IP伪装工具包
#apt-get install ipmasq
重启
查看eth1的DNS信息,我的是10.0.2.3

其他虚拟机设置
网卡0 intrnal network 网络名同上
启动虚拟机,设置
eth0
IP:192.168.16.XXX XXX你随便给个数2~254
掩码:255.255.255.0
网关:192.168.16.1
DNS:10.0.2.3
激活
OK


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-07-31 9:21 
头像

注册: 2007-05-08 16:26
帖子: 2058
地址: 火星内核某分子内某原子核内
系统: arch
送出感谢: 20
接收感谢: 6
VBOX虚拟机和主机->局域网的简单方法
http://forum.ubuntu.org.cn/viewtopic.ph ... 4f25c24449


_________________
笔记本 :
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
cron
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译