VirtualBox 虚拟机主机可以通,之前也可以通,又可以要上网

所以,要想达到主机与两台虚拟机之间都可以互通,虚拟机之间又可以互通,必须修改网卡1的连接方式为host-only,网卡2改成是内部网址,用与私网通讯如果要让两台虚拟机都可以上网,那么就需要配置win7上网的网络连接为共享,共享给VirtualBox生成的host-only网卡,这样两台虚拟机就可以通过host-only的网上,再由经过上网的网卡上网了。


为了在VirtualBox上安装oracle 11g rac,使VirtualBox虚拟机与主机互通,并且虚拟机又能上网配置,找了很多网上文章但都没有都对最终设置方式进行详细的说明,

现在自己总结如下:

一、VirtualBox的提供了四种网络接入模式,它们分别是: 
1、NAT 网络地址转换模式(NAT,Network Address Translation) 
2、Bridged Adapter 桥接模式 
3、Internal 内部网络模式 
4、Host-only Adapter 主机模式 
VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方。先来一张图,通过这张图就很容易看出这4种方式的区别:


更详细的介绍可以自行百度。


二、我的环境


Linux rac1虚拟机

网卡1  (网卡1的目的是用上虚拟机与主机之间通讯,并且可以上外网)

 

由于VirtualBox 的 NAT方式,只允许虚拟机与主机之间单向通讯(因为VirtualBox只虚拟了一个网卡,所以主机是ping不通虚拟机的,而vmware有虚拟两个网卡, VMnet1是host网卡,用于host方式连接网络的。VMnet8是NAT网卡,用于NAT方式连接网络。


所以vmware Nat方式可以主机与虚拟机互通。但可以设置端口转发,这样主机就可以ssh到虚拟机。


通过以下端口转发的设置,可以让主机连上虚拟机(点上网的"端口转发“)

虚拟机CentOS的对应的eth0网络设置是:

eth0 必须是dhcp 通过虚拟机NAT模式获取的默认IP地址是 10.0.2.15,好像改不了,改静态就不行了。

如果用命令行始终配置不好,就用system-network-config启动图行界面来配置,保证配置结果没有错误


以上NAT设置可以适合单台虚拟机服务的设置,即虚拟是NAT地址转换方式,虚拟是默认地址,这样虚拟就可以与主机通讯,并且可以上网

但rac环境要求public两个网卡可以互通,pritiave网卡也可以互相,但如果rac2的网卡1 eth0也是NAT,那么这两个将不互通。

(原因:NAT方式只是虚拟与主机的单向通讯,所以rac2如果也是NAT方式,只说明它也可以也主机单向通讯,并不能与另外的虚拟机互通)


所以,要想达到主机与两台虚拟机之间都可以互通,虚拟机之间又可以互通,必须修改网卡1的连接方式为host-only,网卡2改成是内部网址,用与私网通讯

如果要让两台虚拟机都可以上网,那么就需要配置win7上网的网络连接为共享,共享给VirtualBox生成的host-only网卡,这样两台虚拟机就可以通过host-only的网上,再由经过上网的网卡上网了。

第1步:

      先做共享操作最后确定后,此时Host-only会被置为192.168.137.1(本人的机器,机器不同可能不同,这个网址也就是两台虚拟机public的网段,改网段就是不行)

可以修改(但修改了之后,即使虚拟机也设置但一网段了,只可以主机与虚拟机之间通讯,就是不能上网,所以虚拟机必须设置成同一个网段的IP才可以上网)

以下是通过system-config-network配置图


 另外:Virtual软件全局设置(可以选择开启dhcp,也可以设置静态IP)

这里为关闭DHCP服务,进行手动设置IP,手动不手动似乎没什么不一样,最终eth0还是要dhcp的


最终VirtualBox软件虚拟机的网络设置如下:(rac1和rac2一样)




最终rac的是eth0和eth1分别如下:

rac1的eth0 和eth1如下:


[root@rac1 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:FB:4E:66  
          inet addr:192.168.137.141  Bcast:192.168.137.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fefb:4e66/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:481 errors:0 dropped:0 overruns:0 frame:0
          TX packets:350 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:95721 (93.4 KiB)  TX bytes:43273 (42.2 KiB)


eth1      Link encap:Ethernet  HWaddr 08:00:27:A3:0F:55  
          inet addr:10.10.10.10  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fea3:f55/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:262 errors:0 dropped:0 overruns:0 frame:0
          TX packets:165 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:30822 (30.0 KiB)  TX bytes:14466 (14.1 KiB)


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:16436  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1325 (1.2 KiB)  TX bytes:1325 (1.2 KiB)


[root@rac1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:fb:4e:66
TYPE=Ethernet
UUID=ada6c5d8-382e-4218-8582-2757ccb9d3c5
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
#IPADDR=192.168.137.10
#NETMASK=255.255.255.0
#GETWAY=192.168.137.1
IPV6INIT=no
USERCTL=no
DNS1=192.168.1.1
PEERDNS=yes

[root@rac1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
DEVICE=eth1
BOOTPROTO=static
NETMASK=255.255.255.0
TYPE=Ethernet
HWADDR=08:00:27:a3:0f:55
IPADDR=10.10.10.10
IPV6INIT=no
ONBOOT=yes
USERCTL=no
[root@rac1 ~]#  


rac2 的eth0 和eth1如下:


[root@rac2 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:B2:21:03  
          inet addr:192.168.137.166  Bcast:192.168.137.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feb2:2103/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:214 errors:0 dropped:0 overruns:0 frame:0
          TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:33589 (32.8 KiB)  TX bytes:15498 (15.1 KiB)


eth1      Link encap:Ethernet  HWaddr 08:00:27:AE:AB:08  
          inet addr:10.10.10.11  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feae:ab08/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:512 (512.0 b)  TX bytes:1292 (1.2 KiB)


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:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:720 (720.0 b)  TX bytes:720 (720.0 b)


[root@rac2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:b2:21:03
TYPE=Ethernet
UUID=ada6c5d8-382e-4218-8582-2757ccb9d3c5
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
#IPADDR=10.10.10.2
#NETMASK=255.255.255.0
#GETWAY=10.10.10.1
USERCTL=no
PEERDNS=yes
IPV6INIT=no
[root@rac2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
DEVICE=eth1
BOOTPROTO=none
NETMASK=255.255.255.0
TYPE=Ethernet
IPADDR=10.10.10.11
HWADDR=08:00:27:ae:ab:08
IPV6INIT=no
ONBOOT=yes
USERCTL=no
[root@rac2 ~]# 



验证网络连通:

rac1:

[root@rac1 ~]# ping www.qq.com 
PING www.qq.com (117.135.169.41) 56(84) bytes of data.
64 bytes from . (117.135.169.41): icmp_seq=1 ttl=53 time=8.54 ms
64 bytes from . (117.135.169.41): icmp_seq=2 ttl=53 time=8.75 ms
64 bytes from . (117.135.169.41): icmp_seq=3 ttl=53 time=96.1 ms
64 bytes from . (117.135.169.41): icmp_seq=4 ttl=53 time=8.88 ms
64 bytes from . (117.135.169.41): icmp_seq=5 ttl=53 time=10.0 ms
64 bytes from . (117.135.169.41): icmp_seq=6 ttl=53 time=10.6 ms
64 bytes from . (117.135.169.41): icmp_seq=7 ttl=53 time=10.3 ms
64 bytes from . (117.135.169.41): icmp_seq=8 ttl=53 time=8.79 ms
64 bytes from . (117.135.169.41): icmp_seq=9 ttl=53 time=9.11 ms
^C
--- www.qq.com ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8280ms
rtt min/avg/max/mdev = 8.540/19.021/96.128/27.270 ms
[root@rac1 ~]# ping 10.10.10.11
PING 10.10.10.11 (10.10.10.11) 56(84) bytes of data.
64 bytes from 10.10.10.11: icmp_seq=1 ttl=64 time=2.25 ms
64 bytes from 10.10.10.11: icmp_seq=2 ttl=64 time=0.592 ms
64 bytes from 10.10.10.11: icmp_seq=3 ttl=64 time=0.364 ms
64 bytes from 10.10.10.11: icmp_seq=4 ttl=64 time=0.312 ms
64 bytes from 10.10.10.11: icmp_seq=5 ttl=64 time=0.310 ms
64 bytes from 10.10.10.11: icmp_seq=6 ttl=64 time=0.301 ms
64 bytes from 10.10.10.11: icmp_seq=7 ttl=64 time=0.313 ms
^C
--- 10.10.10.11 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6685ms
rtt min/avg/max/mdev = 0.301/0.634/2.250/0.666 ms
[root@rac1 ~]# 


rac2:

[root@rac2 ~]# ping www.qq.com
PING www.qq.com (117.135.169.41) 56(84) bytes of data.
64 bytes from . (117.135.169.41): icmp_seq=1 ttl=53 time=10.5 ms
64 bytes from . (117.135.169.41): icmp_seq=2 ttl=53 time=10.2 ms
64 bytes from . (117.135.169.41): icmp_seq=3 ttl=53 time=9.93 ms
64 bytes from . (117.135.169.41): icmp_seq=4 ttl=53 time=9.47 ms
64 bytes from . (117.135.169.41): icmp_seq=5 ttl=53 time=61.6 ms
64 bytes from . (117.135.169.41): icmp_seq=6 ttl=53 time=10.3 ms
^C
--- www.qq.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5485ms
rtt min/avg/max/mdev = 9.476/18.714/61.632/19.196 ms
[root@rac2 ~]# ping 10.10.10.10
PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data.
64 bytes from 10.10.10.10: icmp_seq=1 ttl=64 time=0.551 ms
64 bytes from 10.10.10.10: icmp_seq=2 ttl=64 time=0.448 ms
64 bytes from 10.10.10.10: icmp_seq=3 ttl=64 time=0.319 ms
64 bytes from 10.10.10.10: icmp_seq=4 ttl=64 time=0.471 ms
64 bytes from 10.10.10.10: icmp_seq=5 ttl=64 time=0.566 ms
^C
--- 10.10.10.10 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4365ms
rtt min/avg/max/mdev = 0.319/0.471/0.566/0.088 ms
[root@rac2 ~]# 


如果内部不通的,需要关闭iptables就可以



在这里成这样是因为复制系统的过程中复制的文件已经有一个网卡在/etc/udev/rules.d/70-persistent-net.rules被识别成了eth0,而虚拟机中的识别成了eth1。

解决方法:

1.编辑/etc/udev/rules.d/70-persistent-net.rules,找到与ifconfig -a得出的MAC相同的一行(NAME='eth1'这一行),把它改为"NAME=eth0 ",然后把上面一行(NAME='eth0')删除掉。

vim /etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:bb:41:2b", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

2.编辑/etc/sysconfig/network-script/ifcfg-eth0,把MAC改为正确的,把UUID删掉。

3.编辑/etc/sysconf/network,把hostname也改一下。

4.重启生效!



<think>我们正在解决虚拟机可以ping主机但无法访问互联的问题。根据引用[1][2][3]中提到的解决方案,我们可以尝试以下步骤:1.**检查络连接模式**:确保虚拟机络设置正确。常见模式NAT、桥接主机模式。对于访问互联的需求,常使用NAT模式络地址转换)即可。在VMware中,打开虚拟机设置,选择络适配器,确认连接模式NAT。2.**检查虚拟络编辑器设置**(VMware):-打开VMware的“编辑”菜单,选择“虚拟络编辑器”。-选择NAT模式对应的络(常是VMnet8),确保已勾选“将主机虚拟适配器连接到此络”“使用本地DHCP服务将IP地址分配给虚拟机”。-检查NAT设置,确保关地址正确(这个关地址将在虚拟机中设置静态IP时使用,或者由DHCP自动分配)。3.**检查虚拟机络配置**:-在CentOS中,检查络配置文件。对于CentOS7/8,配置文件常位于`/etc/sysconfig/network-scripts/`目录下,文件名类似`ifcfg-ens33`(具体接口名可能不同)。-确保配置文件中的`BOOTPROTO`设置为`dhcp`(如果使用DHCP)或者正确配置静态IP(包括DNS)。-如果使用静态IP,请确保关设置为虚拟络编辑器中的NAT关地址,DNS可以设置为公共DNS如`8.8.8.8`或`114.114.114.114`。4.**检查防火墙**:-临时关闭虚拟机防火墙进行测试(CentOS7/8):```bashsystemctlstopfirewalld```-同时检查主机防火墙设置,确保没有阻止虚拟机络访问。在主机上(Windows)可以尝试关闭防火墙测试。5.**检查DNS解析**:-虚拟机中尝试ping一个IP(如`8.8.8.8`)测试络连性:```bashping8.8.8.8```-如果ping公IP成功,但无法过域名访问(如`pingwww.baidu.com`失败),则问题出在DNS解析。请检查虚拟机的DNS配置(在`/etc/resolv.conf`文件中,确保有有效的DNS服务器地址)。6.**重启络服务**:-在CentOS7中:```bashsystemctlrestartnetwork```-在CentOS8中(使用NetworkManager):```bashnmclicreloadnmclidreapply<网卡名>```7.**重新安装虚拟机络驱动**(作为最后手段):-如果以上方法都无效,可以考虑重新安装虚拟机工具(如VMwareTools)或者检查虚拟网卡驱动。在极端情况下,如引用[1]所提到的,可能需要卸载并重新安装虚拟机软件,但这应该是最后的选择。**注意**:在操作过程中,请根据你的虚拟机软件(VMware,VirtualBox等)操作系统版本调整具体步骤。§§相关问题§§1.如何检查CentOS的络配置文件?2.虚拟机络连接模式NAT、桥接、仅主机)有什么区别?3.如何永久关闭CentOS的防火墙?</think>### 虚拟机可 ping 主机但无法上网的解决方案 #### 1. **检查络连接模式** - **NAT模式优先**:在虚拟机设置中将络适配器改为 **NAT模式**(默认推荐),这是最易配置的上网方式[^2][^3]。 - **避免桥接模式**:若使用桥接模式需手动配置与主机IP,配置错误会导致上网失败[^3]。 #### 2. **验证虚拟络设置** - **检查DNS**: ```bash # CentOS查看DNS ip route show | grep default cat /etc/resolv.conf ``` - **修复DNS配置**:编辑`/etc/resolv.conf`,添加公共DNS(如`8.8.8.8`或`114.114.114.114`): ```bash echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf ``` #### 3. **关闭防火墙(临时测试)** - **虚拟机防火墙**: ```bash # CentOS 7/8 sudo systemctl stop firewalld sudo systemctl disable firewalld # 永久关闭 ``` - **主机防火墙**: 在Windows主机搜索“防火墙” → “关闭Windows Defender防火墙”(测试后恢复)[^3]。 #### 4. **重置虚拟络** - **在VMware中操作**: 1. `编辑` → `虚拟络编辑器` → 选择`NAT模式`(如VMnet8) 2. 点击`还原默认设置` → 重启虚拟机[^2] - **VirtualBox用户**: `全局设置` → `络` → 删除所有Host-Only络 → 重启软件 #### 5. **检查路由表** - 执行命令查看默认路由是否存在: ```bash route -n ``` - 若无默认路由,手动添加(关需参考虚拟络编辑器中的NAT关地址): ```bash sudo ip route add default via 192.168.x.1 ``` #### 6. **终极解决方案** - 若以上步骤无效: 1. 完全卸载虚拟机软件(清理注册表残留配置)[^1] 2. 重新安装最新版本虚拟机软件 3. 新建虚拟机(**勿用旧镜像**),选择NAT模式安装新系统 > **关键验证步骤**: > 测试络连性时,先`ping 8.8.8.8`(测试IP性),再`ping www.baidu.com`(测试DNS解析)。若前者后者不,即是DNS问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值