1. 引言:为什么要写这篇文章?
2019年报名参加了 IDO老徐的【百人计划】第4期,准备工作中包含的一项就是需要拥有一台自己的 Linux 服务器。老徐说过2种途径均可:① 购买阿里云服务器;② 自己用虚拟机搭建一台。本着想弄清楚虚拟机搭建过程的原则,暂时使用方式②。怕自己会忘,写文章记下来,方便后期遇到同样问题的时候可以查阅,同时也期望,能给到有遇到同样问题的同学一些启发。
PS. 这2种途径有何不同呢?
我在刚开始也不明白方式①和方式②的区别,但后面听到老徐直播中的解释,基本也印证了我的想法,觉得特别有必要说明下:
1. 购买阿里云服务器方便,在家、公司都可以玩,只要处于联网状态,随时随地,不耽误事;将来如果自己想搭建个博客、弄个网站什么的,还是需要买阿里云服务器的;
2. 使用虚拟机搭建经济实惠,目前如果无商业需求,只是简单学习使用 Linux 来说,用虚拟机搭建功能是一样的,而且搭建过程中还可以学到一些知识,也算是一举两得,但离开了本机,在另一个地点就无法使用(例如如果你在办公室电脑搭的,到家就没法用)。
2. 重点说明
由于我也是小白一枚,因此我在学习搭建的过程中,碰到了一些比较基础和无知的问题。因为对计算机网络相关的基础知识比较薄弱,照着别人的博文去操作,只知其然不知其所以然。加上技术人写博客,有时候会存在些环境背景和上下文关联未交待清楚的毛病(小白更甚),所以如果后面有同学恰好看到我的这篇文章或者是其他博文,请在操作之余多想一想,自己的环境跟别人文章中提到的是否有出入?如果有出入,一定要针对出入点,找其他解决办法。下面是我的搭建环境:
Windows 版本:WIN10 家庭中文版(64位操作系统)
虚拟机版本:VMware12 Pro
Linux 版本:CentOS7
虚拟机的安装就不多赘述,网上教程非常多,基本安装不会有太大问题。接下里重点说明我搭建时的一些关键设置。
3. 搭建要点
那么先说下搭建的时候遇到的问题:照着百度来的文章安装好虚拟机后,ping 百度无返回数据。
一、虚拟机设置
VMware 界面最上面,选择虚拟机->设置:确认“网络连接”模式,我这里是 NAT 。(其实桥接和NAT模式我到现在也没弄清楚,但是后面设置好 DNS 之后,无论选哪个都能 ping 百度成功,因此暂时不准备花过多时间去纠结它,文末我会贴一些其他技术人的说明方便大家看):
二、查看主机 DNS 地址
win + R 输入 cmd,启动命令行界面,输入 ipconfig-all,查看主机 DNS 服务器地址,如下图所示。注意,由于本机是无线上网,此处为无线局域网的 DNS 服务器地址,记下此地址,后面有用。
三、修改 CentOS7 网络配置文件
1.在 CentOS7 中打开终端,输入 cd /etc/sysconfig/network-scripts/ (就是进入 network-scripts这个文件夹的意思)
2.输入 vi ifcfg-ens33 打开网络配置文件 ifcfg-ens33(目的是要修改它的内容):
3. 输入 i ,出现 INSERT,代表你可以修改了。我们修改 ONBOOT= yes 并增添 DNS1=172.17.16.1,此DNS地址设为本机的DNS地址(之前记下的地址),输入Esc:wq! 保存并退出,如下图所示:
4.输入 systemctl restart network 重启网络,没有提示任何信息,则表示网络重启成功,如下图所示:
特别说明:CentOS7中的重启网络的命令是 systemctl restart network ,而不是大多数博文中提到的 service network restart。不同的 Linux 版本的命令有所区别。就像我后面遇到一个问题,在安装好的 CentOS7 里使用 cat /etc/issue 去查看当前服务器的发行版,结果输出了一个 \S,我不明白这个\S是什么。
我就很好奇为什么不出现类似其他博文中出现的 “CentoOS release 6.5”这样的字样,我以为应该是出现 “CentoOS release 7”这种的,最后查找资料才知道要输入“ cat /etc/centos-release”命令才能出来。
虽然这个问题可能在大牛看来非常无知,但确实像我这样的小白,在碰到了这类问题的时候是比较懵的,找解决方法的时候花了一些时间,希望我的记录能帮助后来的朋友们得到一些启发。
5.输入ping www.baidu.com,有返回数据则表示成功。(终止ping命令:ctrl + c 或ctrl + z)
如果大牛们发现我的文中有错误,欢迎评论指正,多谢!
----------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------
总结:
1. 安装过程中对Vmware Workstation的三种上网方式不理解,不知道到底应该选哪个?
贴一些其他技术人的博文片段:
一.VM虚拟机NAT方式上网。
Vm软件在windows7上安装完成之后有5个服务同时安装:先来看看这5个服务的作用是什么
第一个服务:Authorization and authentication service for starting and accessing virtual.用于启动和访问虚拟的授权和认证服务。简单说就是当你操作系统需要后台运行的时候,需要开启这个服务。
第二个服务:DHCP service for virtual networks.虚拟网络DHCP服务。简单说就是一个ip自动分配服务。在网络的7层(5层)架构中,有个DHCP协议,这个服务实现了那个协议。
第三个服务:Network address translation for virtual networks.虚拟网络的网络地址翻译。我把他叫做NAT服务,为了解决IPv4地址的不足,老外搞了个NAT协议,也就是把私网的ip映射到公网的ip。
第四个服务:Arbitration and enumeration of USB devices for virtual machines。虚拟机和USB设备枚举仲裁,这个字面意思。
第五个服务:Remote access service for registration and management of virtual machines. 虚拟机的登记和管理远程访问服务。
VMware的几个虚拟设备:
VMnet0:用于虚拟桥接网络下的虚拟交换机
VMnet1:用于虚拟Host-Only网络下的虚拟交换机
VMnet8:用于虚拟NAT网络下的虚拟交换机
Vmware Network Adepter VMnet1:Host用于与Host-Only虚拟网络进行通信的虚拟网卡
Vmware Network Adepter VMnet8:Host用于与NAT虚拟网络进行通信的虚拟网卡
桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位(虚拟网卡既不是Adepter VMnet1也不是Adepter VMnet8)。那么物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机。所以两个网卡的IP地址也要设置为同一网段。
在NAT网络中,会用到Vmware Network Adepter VMnet8虚拟网卡,主机上的Vmware Network Adepter VMnet8虚拟网卡被直接连接到VMnet8虚拟交换机上与虚拟网卡进行通信。NAT网络模式Vmware Network Adepter VMnet8虚拟网卡的作用仅限于和VMnet8网段进行通信,它不给VMnet8网段提供路由功能,所以虚拟机虚拟一个NAT服务器,使虚拟网卡可以连接到Internet。
Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过Vmware Network Adepter VMnet1虚拟网卡来实现的。
2. ping不通外网,主要是DNS没有设置,但是如何查看主机DNS?如何设置?
WIN7命令行:ipconfig–all
vi ifcfg-ens33,添加DNS1信息
3. 不理解静态IP上网和DHCP自动分配的区别
静态IP是手动设置的IP地址,动态IP是通过DHCP服务器自动获取的IP地址。DHCP是动态主机配置协议的缩写。DNS是域名系统。
如果是用路由器上网,你必须要有一个IP地址才能上网,大部分路由器都打开了DHCP功能这样你就可以选择自动获取IP地址等一会获取后就可以上网了,如果获取不着那说明你电脑的网卡有问题啦,当然你也可以手动设置IP地址,因为手动设置的IP地址是不变的所以称为静态IP地址,自动获取的IP地址每次开机的时候获取由路由器自动分配所以他是动态的。手动设置IP地址要注意和路由器的IP地址段在同一段,否则上不上网,所以要事先知道路由器的IP地址;
4. Ifconfig、ipconfig、vim、service network restart命令失效,敲这些命令总是提示command not found,缘由:
CentOS7中取消了 ifconfig,用 nmcli 进行了代替,服务管理也升级为 systemd
要查看ip地址:输入ipaddr
要重启网络:输入systemctl restart network
要编辑文件:输入 vi
要查找网卡信息:输入cd /etc/sysconfig/network-scripts/ 命令,输入dir查看目录,找到 ifcfg-ens33(一般第一个显示的就是你的网卡信息,也有叫ifcfg-eno16777736的,可以是cat查看或者使用vi编辑)