十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
由于项目中用到了redis和ZooKeeper,所以今天在个人笔记本上安装了个虚拟机,搭建了个linux开发环境。整个过程中,关于虚拟机安装、软件安装等等这些都没什么好说的,就是在设置虚拟机中linux系统访问外网时,不是访问不了外网就是ip丢失,所以有必要把关于虚拟机中linux系统网络设置做个详细说明,以备后用,也方便其他遇到同样问题的人们借鉴:
虚拟机安装完成以后,可以查看到虚拟出三种网络:VMnet0、VMnet1和VMnet8。查看如图:![](/upload/otherpic46/b7d3dd45873cf74088194424dd72df1f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
这三种网络分别为本地连接、自连接和NAT连接,表示将来虚拟机中操作系统与外部网络采用的策略。此外,我们从主机(我的个人笔记本电脑)的网络连接中也可以看到生成了两个虚拟机网卡:
那有人会说这里怎么没有VMnet0呢?这是因为VMnet0这种连接,虚拟机不从属于主机,地位和主机同等,下边会详细描述。
专注于为中小企业提供网站设计、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业通海免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
下边就详细描述一下这三种网络设置:
第一:VMnet0是本地连接,也叫桥连接。这种连接,实质上就是虚拟出来一台机器,虚拟机和主机处在同等地位,共用同一个局域网,它也会占用局域网段中的一个ip;这个时候,主机怎么连外网,虚拟机就怎么连,那可能是有线的也可能是无线的,这由主机具体情况决定。
设置虚拟机要使用桥连接:在虚拟机上右键--->设置:![](/upload/otherpic46/4c20843ff3b5e967075c357e9bdd3244.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
主机cmd下执行ipconfig命令,查看(我采用的是)无线局域网ip:![](/upload/otherpic46/f14a747a734bb8499e2b24a619d06b8e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在linux中执行ifconfig查看的ip也是31网段的一个ip:![](/upload/otherpic46/8506ae27cbb0ae2aef81cd2d47c9ddda.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
这个时候如果主机连有外网,则虚拟机也可以连外网。
第二:VMnet1是自连接,虚拟机只能和主机进行通信,处于同一网段,它的ip是VMnet1网段中的一个;即使主机有外网,虚拟机也连不上外网。
设置虚拟机要使用自连接。
主机cmd下执行ipconfig命令,查看VMnet1的ip:![](/upload/otherpic46/2f2536565bcf3c6712b1c2c5b3d11ee6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在linux中执行ifconfig查看的ip也是17网段的一个ip:![](/upload/otherpic46/102923281ed78b987d5898fdbc938672.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
这个时候即使主机连有外网,虚拟机也无法连接外网.
第三:VMnet8是NAT连接,虚拟机把主机ip作为外网ip,在这个基础之上虚拟出一个网络,虚拟出来一个网段;如果主机有外网,则虚拟机也可以连外网,连接原理就是从虚拟机找到主机网关,然后再找到主机外边的外网网关。
设置虚拟机要使用NAT连接。
cmd下执行ipconfig命令,查看VMnet8的ip:![](/upload/otherpic46/3610bf29af10468950d10c6371e5ed11.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在linux中执行ifconfig查看的ip也是248网段的一个ip:![](/upload/otherpic46/6d9b79bafb37137a41c2ca2313fc1176.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
这个时候如果主机连有外网,则虚拟机也可以连外网。
至于我们实际开发过程中采用哪一种,由自己的使用情形决定,在有外网的情况下,使用VMnet0和VMnet8多一些,如果不需要使用外网又不想受外网干扰则采用VMnet1。
而对于VMnet1和VMnet8,我们还可以具体设置ip等信息:
还有一种意外情况,虚拟机中安装好linux系统之后,如果执行ifconfig没有ip地址,则可以执行命令dhclient ens33;但是这样虽然这次能生成ip,但是下次启动linux,又没了ip,要想每次都自动生成ip,则:
进入/etc/sysconfig/network-scripts/
用vi 修改ifcfg-ens33中的ONBOOT=no为ONBOOT=yes
保存并退出
重启网络服务service network restart
这是我遇到一些个情况,详列于此,希望对朋友们有所帮助。当然,有不周全之处,还请包涵。