第一部分:问题描述
问题描述:在win10上安装了Oracle VM VirtualBox,在VirtualBox中安装了最新版本的Ubuntu1206_desktop操作系统,出现两种情况:
情况一:win10使用无线上网的模式
虚拟机Ubuntu1206_desktop操作系统配置了静态IP相关的配置,VirtualBox网络使用桥接的模式,测试win10上能ping通虚拟机、但是虚拟机不能ping通win10主机,同时虚拟机也不能ping通www.baidu.com。
情况二:win10使用有线上网的模式
虚拟机Ubuntu1206_desktop操作系统配置了静态IP相关的配置,VirtualBox网络使用桥接的模式,测试win10上能ping通虚拟机、但是虚拟机不能ping通win10主机,同时虚拟机也不能ping通www.baidu.com。
第二部分:解决问题方案
对情况一和情况二实际上都可以使用同样的方式配置虚拟机上的静态IP,详情请参考第三部分的Ubuntu1206配置静态IP流程;其中唯一的区别就是用VirtualBox网络配置中桥接网络的选择,win10主机使用无线上网,VirtualBoix网络模式选用无线网卡;win10主机使用有线上网,VirtualBoix网络模式选用有限线网卡。win10使用有线,virtualBox网络配置参考截图如下:
实际上进行了上面的配置后,win10上主机能ping虚拟机,但是虚拟机不能ping主机,这主要是win10操作系统在作怪了,最简单的方法就是直接关闭win10操作系统的防火墙;但是这样操作并不安全,实际上还有另外一种解决方案,参考如下:
通过网上查看资料,原来是Windows7/windows10的防火墙没有打开ICMPv4-in这个规则,那怎么打开呢:
A、打开WIN7/WIN10防火墙
B、选择高级设置
C、入站规则
D、找到配置文件类型为“公用”的“文件和打印共享(回显请求 – ICMPv4-In)”规则,配置文件为专用/公用模式那个,设置为允许,截图如下。
E、虚拟机可以ping通主机了!
参考网址(虚拟机ping不通主机,但是主机可以ping通虚拟机):
第三部分:相关知识的理解
1、Ubuntu1206桌面操作系统,网卡enp0s3理解
/*
* Two character prefixes based on the type of interface:
* en — Ethernet
* sl — serial line IP (slip)
* wl — wlan
* ww — wwan
*
* Type of names:
* b<number> — BCMA bus core number
* c<bus_id> — CCW bus group name, without leading zeros [s390]
* o<index>[d<dev_port>] — on-board device index number
* s<slot>[f<function>][d<dev_port>] — hotplug slot index number
* x<MAC> — MAC address
* [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
* — PCI geographical location
* [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
* — USB port number chain
*/
上面一段是systemd源码的注释,意思是:
en代表以太网卡
p3s0代表PCI接口的物理位置为(3, 0), 其中横座标代表bus,纵座标代表slot
参考网址1:https://segmentfault.com/a/1190000006078381
参考网址2:
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
2、Ubuntu1206配置静态IP流程
A、使用vi命令或者文本编辑器gedit打开上面的配置文件并修改。截图如下所示:
参考命令为:sudo vi /etc/network/interfaces
注解1:其中IP地址(address)设置,请先查看win10主机的IP地址,只需确保是同一个网段即可。其它的网络掩码(netmask)、网关(gateway)也参考win10主机的IP地址。其中network、broadcast可以不需要。
注解2:域名服务器配置及理解,用户可以在这个文件中写入,参数为dns-nameservers,也可以在域名服务器配置文件:/etc/resolv.conf中进行设置。
注解3:国外的DNS(google提供的),若服务器需要配置VPN进行翻墙的话,需要把国外的DNS放在前面。
nameserver 8.8.8.8 #谷歌
nameserver 4.4.4.4 #美国
国内的DNS:
nameserver 202.106.0.20 #北京联通
nameserver 159.226.5.65 #北京市中国科学院软件研究所
也可以直接在/etc/network/interfaces 里的最后直接加dns
dns-nameservers 8.8.8.8 #设置DNS,谷歌dns
dns-nameservers 202.106.0.20 北京市联通dns
参考网址(Ubuntu Server16.04无图形化版,安装后,全命令配置网络):
http://blog.csdn.net/wangfengtong/article/details/72780694
B、配置好上面的IP信息,重启网络及可以了
参考命令:/etc/init.d/networking restart
参考网址1(在VirtualBox上配置ubuntu网络):
http://blog.csdn.net/wzygis/article/details/44708197
参考网址2(virtualbox ubuntu虚拟机不能上网问题解决)
http://blog.csdn.net/liyongofdm/article/details/8120366
3、VirtualBox配置主机和虚拟机文字复制功能及文件共享功能
A、主机和虚拟机之间文字复制/剪切配置
- 进入Oracle VM VirtualBox管理器
- 选择常规-->高级
- 将共享粘贴板设置成双向
- 将拖放设置成双向
- 如果这样还是不行,打开并进入虚拟机
- 找到-->设备-->安装增强功能...
- 在弹出来的对话框中,单击run即可
- 这样主机和虚拟机之间文字复制/剪切配置,设置完毕。
B、主机和虚拟机之间文件共享设置
- 进入Oracle VM VirtualBox管理器
- 选择-->共享文件夹-->固定分配
- 新增一个固定分配的路径
比如我的路径设置为:G:\win2linux_share_file_20171022
- 进入虚拟机服务器
- 创建一个共享文件夹/home/share
虚拟机中操作命令为:mkdir /home/share
- 进入该文件夹(/home/share)
参考命令为:cd /home/share
- 对该文件夹设置权限
参考命令为:chmod 777 .
- 配置挂载
参考命令为:sudo mount -t vboxsf -o uid=1000,gid=1000 win2linux_share_file_20171022 /home/share
注解1:其中win2linux_share_file_20171022为win10下的共享文件夹
注解2:其中/home/share为虚拟机中的共享文件夹
- 这样就操作完毕。
参考网址(Virtualbox主机和虚拟机之间文件夹共享及双向拷贝(Windows<->Windows, Windows<->Linux)):http://blog.csdn.net/pan_tian/article/details/22619687