Linux下NAT方式访问互联网的配置分析

先说点题外话

在做一个web项目迁移到linux,需要配置apache和Oracle,但是没网络会相当麻烦,所以我就凭借在学校学的基础上路了,弄虚拟机了。

PS:我应该没见过写得比我还详细的人了


首先来看一幅鬼斧神工的图吧:

这是我理解的本地上网大致示意图,我们可以把"上网"参照电流的形式,(实际上网线里传输的也是类似的玩意儿吧,光纤就另说了,好吧扯远了) ,本机通过连接路由器获得访问网络的权力(具体有线或无线方式没有影响),而虚拟机软件系统vmware可以看成是一个需要联网的软件(类比qq等)。

进入文章之前首先你要大致认识几个我配置的ip,(暂时可以不用理解,你可以中途回来查它是谁的ip就够了)

192.168.81.1      虚拟机子网网关,(不需要配置成独立的一台虚拟机,只需要在vmware软件的设置里填上就好了)

192.168.81.130   windows主机在vmware虚拟网段下的ip,vmnet8网卡配置的ip

192.168.81.132    这是我设置的虚拟机IP地址(如果不设置为静态的话估计每次重新开机都会被分发一个不一样的ip,重要)

*DHCP:vmware给虚拟机自动分发IP,每次登陆ip可能都不同

 *Manual:虚拟机手动设置ip,这样每次重新登陆ip都是一样的了。

192.168.1.100     我的windows主机通过路由器自动获取的ip,实际上我电脑上所有软件和外网交流就是通过这个ip和路由器连接的,然后我的路由器是由我在联通那边注册的宽带ip和外面连接的了。。。。。

8.8.8.8 我为整个虚拟机子网下所有的虚拟机配置的DNS服务器(PS*来自百度:8.8.8.8是一个IP地址,是Google提供的免费DNS服务器的IP地址,Google提供的另外一个免费DNS服务器的IP地址是:8.8.4.4 。用户可以使用Google提供的DNS服务器上网。)



一、配置vmware的网络服务

由于我们在vmware下面安装了一系列的虚拟机,所以就需要管理它们,下面是虚拟机软件配置的一个子网(NAT方式):

子网网段:192.168.81.*   (由于我的路由器是192.168.1.**,所以虚拟机子网网段不能设置为192.168.1.*)

网关:192.168.81.1

子网IP范围:192.168.81.100----192.168.81.254(范围只是我自己的习惯,但是绝对不能从0开始,1也不建议,因为1一般设置为网关,避免不必要的冲突)

二、配置CentOS虚拟机的IP:

下图表示配置为静态IP(不是通过DHCP自动获取);

IP:192.168.81.132

网关:192.168.81.1(第一步配置的)

DNS: 8.8.8.8

到这里我们还没配置vmnet8,但是重启vmware网络相关服务后,已经可以访问互联网了:

看我下面上了企鹅主页

三、配置windows用于连接虚拟机的网卡:vmnet8

Ip:192.168.81.130

网关:192.168.81.1

DNS: 8.8.8.8,我估计dns可以忽略掉,反正是同一子网,不过填上也没啥坏处

前面提过这块网卡用于windows主机在VMware虚拟子网网段下和虚拟机沟通,事实也是这样,我在windows下使用secureCRT连接虚拟机,登陆时的提示可以证明

下图中的192.168.81.130就是我在windows本机连接,vmware虚拟子网下的,ip为192.168.81.132的虚拟机spark07,

下图中显示的IP是192.168.81.130(windows主机从vmware虚拟子网获取),而不是windows主机从路由器子网获取的IP:192.168.1.100这足以说明网卡vmnet8的作用

下图提示可以理解成:从windows(192.168.81.130)通过SecureCRT连接名为spark07的虚拟机成功

PS * 来自百度:SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。

实际上,当我把VMnet8这块网卡禁用了之后,在虚拟机里面直接ping我windows通过路由器获取的ip:192.168.1.100同样是成功的,而且虚拟机还是能访问外网的

下图中的192.168.1.100是我从路由器分配到的ip地址,从linux里面直接ping它显示成功了,192.168.81.130是被禁用的vmnet8网卡,ping失败,而且vmnet8禁用之后SecureCRT也提示连接断开,综上所述,虚拟机通过vmware软件的配置(设置的网关,DHCP设置等等)实现上网,而vmnet8则是实现虚拟机与windows的同一子网交互,其实不同子网也可以交互的,比如下图中我使用ip为192.168.81.132的虚拟机ping通了我的路由器子网下ip为192.168.1.100的windows主机

当禁用vmnet8之后,filezila显示如下:

此时使用SecureCRT连接虚拟机spark07(IP:192.168.81.132)显示如下:


综上如果你都了解了,相信nat方式对你来说应该不难了

如果还是不行,你可以检查以下方面:

一、去任务管理器(或者右键-->我的电脑-->管理--->服务),查看vmware相关的服务是不是都开起来了:

二、还有一个地方可以注意一下:如果同时开虚拟机和apache可能会造成443端口冲突,图中的443是我的apache占用的,453是我修改后的vmware-hostd.exe占用端口

cmd-->回车进入命令行-->输入:  netstat -ano 就可以查看端口了

通过末尾的PID:4208(端口443)和14244(端口453)在任务管理器可以查到:

默认是443,被我修改成了453,其实我并不了解vmware-hostd.exe有什么作用,但也不敢随便就把它停了,所以就改端口喽

修改vmware-hostd.exe端口很简单:编辑-->首选项。。。。。然后就可以了

三、到虚拟机下确认ip是否修改好了:

我就出现过一次明明编辑好虚拟机ip了但就是ping不通,然后用ifconfig看了一下就明了了,ip还没修改成功呢,让后把第一步中的那三个服务都重启了一下,就好了(你也可以试试重启虚拟机)

如果你在公司使用代理上网,那么,一定记得给你的linux配置代理,yum、wget、浏览器等等东西都要配置代理,否则你按照我的做了也是不能上网的。



求个回复,这是我目前写得最认真的一篇博客了,来个处女回复吧,目前包括问问题、写错误修改贴,都还没被大佬们回复过emmm,QAQ,我甚至还会嘤嘤嘤。。。。

猜你喜欢

转载自blog.csdn.net/bokerr/article/details/82288706
今日推荐