红联Linux门户
Linux帮助

Virtualbox连接问题!

发布时间:2009-03-23 22:13:53来源:红联作者:anj
[i=s] 本帖最后由 anj 于 2009-3-23 22:20 编辑 [/i]

我现在用的是网通的ADSL上网!因为,学习的需要,所以装了一个虚拟机!用的就是Virutalbox这个软件。我想要达到的效果是这样子的,真机要可以连上INTERNET,还要能连接上虚拟机!
我试过几种方面都不管用,因为方便,我真机用的Network manager开机自动连接网络,在/etc/sysconfig/network-scripts/下有这个ADSL网通连接的配置文件!我设置ifcfg-eth0为静态IP地址 一切都很正常,但是,如果 ifup eth0!发现连不上外网,但是可以和虚拟机连接,network manager没有提示连接断开 ,ifconfig 也显示着pppoe 在公网上的ip地址!然后也试了新建一个eth0:0连接。但是效果和eth0那个连接一样!不知道怎么解决!
文章评论

共有 7 条评论

  1. anj 于 2009-03-26 07:32:00发表:

    呵呵! THANK YOU!
    不错不错!

  2. eku123 于 2009-03-25 16:08:30发表:

    这个问题的原理是,使用内网地址与虚拟机连接,实际上与虚拟机连接的地址是eth0的ip address,这里虚拟机的网络模式需要选择host inetrface,并且两台机器的内网地址在一个逻辑网段内。然后使用ppp0与Internet连接,ppp0是一个虚拟接口,它是通过pppoe-setup设置规则的,然后通过pppoe-start拨号并激活。最后,再通过iptables的nat功能,实现虚拟机与Internet的连接。

    解决方法如下:
    一、host(主机)设置

    1、关闭NetworkManager服务,打开netwrok服务
    chkconfig --level 2345 NetworkManager off
    chkconfig --level 2345 network on

    2、将eth0(或其他网络接口设为私网地址)
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    填入以下内容
    # eth0
    DEVICE=eth0
    BOOTPROTO=static
    TYPE=ether
    HWADDR=xx:xx:xx:xx:xx:xx (设置为eth0的mac,这行原配置文件里有,不用改动)
    IPADDR=192.168.0.1 (设置为原来eth0的ip)
    NETMASK=255.255.255.0
    NETWORK=192.168.0.0
    BROADCAST=192.168.0.255
    ONBOOT=yes

    3、配置adsl拨号网络(以root权限执行)
    pppoe-setup
    然后根据提示选择网卡、用户名、密码、防火墙规则等,关于pppoe-setup的设置可以在网上搜到,这里不再详述。

    4、iptables的设置

    (1)、打开系统的ip转发功能
    vim /etc/sysctl.conf
    将“net.ipv4.ip_forward = 0”的值改为1

    (2)、清空所有规则,并保证所有链的默认策略为ACCEPT
    iptables -F (清空filter表)
    iptables -t nat -F (清空nat表)
    iptables -t mangle -F (清空mangle表)

    注:filter表中FORWARD链的默认策略经常为DROP,这会阻止ip转发
    iptables -P FORWARD ACCEPT (设置filter表FORWARD链的默认策略为ACCEPT)

    iptables -L -n (查看filter表中链的默认策略)
    iptables -t nat -L -n (查看nat表中链的默认策略)
    iptables -t mangle -L -n (查看mangle表中链的默认策略)

    (3)、打开iptables服务,添加以下规则
    service iptables start
    iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE

    (4)、保存iptables设置,并设置iptables服务自启动
    service iptables save
    chkconfig --level 2345 iptables on

    这时重启一下主机,让所有设置重启生效。

    二、guest(虚拟机)设置

    1、设置虚拟机桥接模式
    打开virtualbox里虚拟机的网络设置,在adapter1中勾选启用网络连接,连接方式选择Host Interface并勾选接入网线,MAC地址改为000000000001(主要是比较好记,你自己设个也行)并勾选接入网线,在下面的Host Interface选项中点选eth0,确定。(汗,不会贴图)

    2、虚拟机网络设置
    运行虚拟机

    1、关闭NetworkManager服务,打开netwrok服务
    chkconfig --level 2345 NetworkManager off
    chkconfig --level 2345 network on

    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    填入以下内容
    # br0
    DEVICE=eth0
    BOOTPROTO=static
    TYPE=ether
    HWADDR=00:00:00:00:00:01
    IPADDR=192.168.0.2
    NETMASK=255.255.255.0
    NETWORK=192.168.0.0
    BROADCAST=192.168.0.255
    GATEWAY=192.168.0.1
    ONBOOT=yes
    DNS1=x.x.x.x (查看主机的ppp0信息,填入dns)
    DNS2=x.x.x.x
    保存并重启虚拟机

    在主机的终端里执行pppoe-start命令,拨号上网,然后在虚拟机上ping下主机192.168.0.1,再ping下外网www.163.com,正确设置的话应该都是通的。

  3. anj 于 2009-03-25 14:53:59发表:

    0:5ty(
    没人知道怎么解决吗?

  4. anj 于 2009-03-24 20:43:42发表:

    我的真机装的是Fedora 10 ,Virtualbox里面装的是RedHat Enterprise 5!
    装完系统后,已经安装过 Virtualbox 里面的驱动程序和增强工具了!
    我想要的是 要VirtualBox 里的REDHAT和真机可以互相通信,并且,真机可以上网!
    现在遇到的问题就是真机上网就不能和虚拟机通信,但是连接INTERNET就不能和虚拟机通信!

  5. 水龙月 于 2009-03-24 18:55:50发表:

    你的Virtualbox中的操作系统也是Linux吗?通常安装好Virtualbox中的操作系统后还得再动手把虚拟系统中的网卡驱动重新安装一下。
    我用它虚拟了个XP,装好后出现网卡驱动是叹号,就动手去选了个合适的驱动就解决问题了。

  6. anj 于 2009-03-24 14:11:53发表:

    我的不是这个意思!
    我的意思是已经可以接连上虚拟机 但是 这样说吧 虚拟机和INTERNET 我现在只能连接一个!

  7. chiver 于 2009-03-23 22:53:40发表:

    要用NAT模式