写在前面的话:用过Linux的同学应该都会觉得Linux安装是件非常简单的事情,根本不值得用博客记下来!但是我发现,其实没接触过Linux的同学还真不一定会装,就像在IT行业工作过几年但一直用Windows系统的同学可能就不会装Linux,这是正常的!毕竟不是谁都需要去安装或配置Linux服务器!所以想了下,还是将Linux的基本安装过程记一下流水账,在流水账最后讲一下基本网络环境的配置。

  这里以使用Linux皇家血统Red Hat Enterprise Linux的源码编译而成的CentOS(Community Enterprise Operating System)为蓝本进行流水账的记录!CentOS的具体版本号为:CentOS-8.1.1911-x86_64,建议到阿里云CentOS镜像库下载,速度快嘛(可能你看这篇文章时已经有更新的版本了,但8.x的版本应该不会相差太多,多年后的小白如果发现8.x版本早已下架,那么可以关贴了)!

  为了讲得足够小白,我从虚拟机的创建开始一步一步记下去,基本上都是截图标注+少量文字补充说明的方式(不要多说,一切都在酒中,一切都在图中!希望博客园一直稳住,不要破图了!),没啥技术含量的,所以不是小白的同学也可以关贴了(也可以直接翻到文末看看)!小白就接着看吧!→♥

  先用VMware-workstation 15.5 创建虚拟机(VMware是收费的,别问我哪里搞到的,我是不会告诉你的,因为你懂的!):

CPU个数、核数以及内存大小要视自己的需要而定;比如Gitlab服务器一般都需要4G以上的内存。

网络模式也要视自己的情况而定,比如我的路由器内置了DHCP功能的,能够分配跟宿主机同级的IP地址并进行上网,这种情况我选择桥接模式可能会更好些,让宿主机与虚拟机处于相同级别,更像企业真实环境的局域网情况。关于这几种网络模式的区别,就自己去学了,将来有时间可能会再详细出一篇文章讲!现在继续...

虚拟机的磁盘大小后期是可以更改的,所以这里不用紧张才20G,先按默认的大小创建!当然如果你确定会有很多数据,那一开始设置大一点也没事!

选定好我们的CentOS8.1操作系统ISO文件作为后面的系统安装介质(光盘),如果这一步忘了选定安装介质ISO文件,下一步还能可能过“编辑虚拟机设置”进行选择!

  首屏安装界面默认选中的是第二项“Test this media & Install CentOS Linux 8”,即检测安装介质并安装CentOS 8,检测的目的是看看安装包有没有被别人篡改过,比如植入后门、病毒等,如果不是生产服务器的安装,可以不用检测安装介质,直接上下方向键选择上面的“Install CentOS Linux 8”,因为安装介质检测过程可能会花掉很长的时间,机器慢一点的半个小时以上都有可能!

  这是我建议的配置顺序:先配网络→再配日期时间(NTP服务器要用到前面的网络)→再配磁盘分区和文件系统→再配操作系统支持的语言→最后配要安装的软件包,下面我将按这个顺序来截图记录配置过程:

  如果你设置的密码不够强大,但你坚持要用,那得按两次左上角的Done按钮

  如果在软件安装包的选择过程中选的是带图形界面的Server with GUI,那么启动后还有几个页面步骤让你做协议认可和初始化设置用的,这里就不切截图了!

最后一些常见问题的解答:

问题1:桥接模式(自动)安装完后,相同网段Linux主机ping宿主机的IP没有效果?

可能原因:宿主机防火墙开启状态,并且没有将ICMPv4协议配置成可以入站;

问题2:桥接模式(自动)安装完后,相同网段宿主机ping Linux主机的IP没有效果?

可能原因:Linux主机防火墙开启状态,并且没有将ICMPv4协议配置成可以入站;

Linux允许ping设置:

1)      临时允许ping的操作命令为:

# echo >/proc/sys/net/ipv4/icmp_echo_ignore_all

2)      永久允许ping的配置方法为:在 /etc/sysctl.conf系统控制配置文件中增加一行 net.ipv4.icmp_echo_ignore_all=0  修改完成保存后,执行sysctl -p使新配置生效:

# vim /etc/sysctl.conf
# systctl -p
net.ipv4.icmp_echo_ignore_all=0

此时可以尝试再从宿主机ping一下Linux主机,如果还没效果,可以尝试临时停止一下防火墙:

使用# systemctl stop firewalld.service 命令或 # service iptables stop 命令来停止防火墙:

# systemctl stop firewalld.service
# service iptables stop

然后可以再次尝试再从宿主机ping一下Linux主机,如果能通,那说明之前不能通是防火墙在阻止,配置防火墙允许ping通过:

# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

生产服务器上一般是不允许ping的,如何禁掉之前开启的ping功能呢?

系统参数配置层面禁止ping

1)      临时禁止ping的操作命令为:

# echo >/proc/sys/net/ipv4/icmp_echo_ignore_all

2)      永久禁止ping的配置方法为:在 /etc/sysctl.conf系统控制配置文件中增加一行(原来有的话直接修改) net.ipv4.icmp_echo_ignore_all=1 修改完成后执行sysctl -p使新配置生效

# vim /etc/sysctl.conf
# systctl -p
net.ipv4.icmp_echo_ignore_all=1

防火墙层面禁止ping

# iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP 

如果上述禁用ping的设置都没有起作用,可以通过 # iptables -L 查看一下是不是还有其他的icmp防火墙设置在起作用,例如可能还有

# iptables -A INPUT -p icmp -j ACCEPT
# iptables -A OUTPUT -p icmp -j ACCEPT

这样的设置在起作用,将它们DROP掉就行了:

# iptables -A INPUT -p icmp -j DROP
# iptables -A OUTPUT -p icmp -j DROP

问题3:使命令如何设置服务器静态网络信息,如IP?

RHEL 8/CentOS 8版本开始network.service默认没有安装,默认只使用NetworkManager作为网络管理工具,而且RedHat官方指出在后续的版本中会彻底不支持network.service!!!

首先通过命令:# nmcli connection show 查看服务器网卡信息(nmcli→NetworkManager Client):

# nmcli connection show
NAME UUID TYPE DEVICE
ens33 d041f8bf-dfef-45e9--466170b5c09f ethernet ens33

然后到Linux的网卡配置目录 /etc/sysconfig/network-scripts/ 找到相应网卡的配置文件并用vi或vim打开,例如:

# vi /etc/sysconfig/network-scripts/ifcfg-ens33

将BOOTPROTO的值由dhcp改为static,即静态分配;

在文档最后新起一行添加IPADDR={你的IP地址},例如IPADDR=”192.168.0.104”

在文档最后新起一行添加PREFIX={你的子网掩码前缀},例如PREFIX=”24”

在文档最后新起一行添加GATEWAY={你的网关地址},例如GATEWAY=”192.168.0.1“

保存配置变更,通过下面命令重启网卡(其中ens33为网卡设备名称):

# nmcli con up ens33
# systemctl restart NetworkManager

重启完后,可以通地下面命令查看网卡信息:

# ifconfig

问题4:使用命令怎么设置DNS地址?

同样在Linux的网卡配置目录 /etc/sysconfig/network-scripts/ 下找到网卡配置文件并用vi或vim打开,在最后新起行来添加你的DNS配置即可:

# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="d041f8bf-dfef-45e9-8055-466170b5c09f"
DEVICE="ens33"
ONBOOT="yes"
DNS1="192.168.1.3"
DNS2="192.168.10.105"

  我们行末加了两个DNS服务器地址配置,保存退出后,使用# systemctl restart NetworkManager 重启一下网络:

# systemctl restart NetworkManager

  最后使用vi或vim查看一下NetworkManager最终生成的DNS解析配置文件:

# cat /etc/resolv.conf
# Generated by NetworkManager
search DHCP HOST
nameserver 10.198.1.1
nameserver 114.114.114.114
nameserver 192.168.1.3
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 192.168.10.105

  可以看到NetworkManager最终生成了4条DNS服务器配置,其中前两条是我们系统安装时指定的,后面两条是刚才在网卡配置文件末尾添加的,但有个提示说 libc解析器不支持超过3个域名服务器,因此第4条DNS配置可能无法识别,也就是无效咯!search DHCP HOST 表示域名查询顺序为先搜DHCP服务器,再搜本地HOST本地配置。

  提醒下:不要试图通过直接修改 /etc/resolv.conf 文件来变更DNS的配置,你会失望的,它不会生效!NetworkManager重启或系统重启后又会被NetworkManager生成的最终配置信息覆盖!

问题 5:图形界面的Linux能不能启动成只有命令行的?

答案是可以的啊!从CentOS 7开始系统一共有5个启动级别或叫运行级别(CentOS7之前有7个):

  • shutdown.target:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  • emergency.target:紧急维护单用户状态,root权限,用于系统维护,禁止远程登陆
  • rescue.target:多用户状态(没有NFS)
  • multi-user.target:完全的多用户状态(有NFS),登陆后进入控制台命令行模式(软件安装包选择过程中选择无图形界面的Server就是这个级别)
  • graphical.target:X11控制台,登陆后进入图形GUI模式(软件安装包选择过程中选择带图形界面的Server with GUI就是这个级别)

  一般正常情况下我们只会用到multi-user.target和graphical.target,特殊维护场景才会打到emergency.target级别,那么如何切换运行级别呢?在终端界面(即命令行界面)运行 # systemctl isolate XXX 就可以了(XXX就是运行级别):

# systemctl isolate graphical.target

  接着查看一下当前运行级别(运行级别新旧对照表见文末):

# runlevel
 

 

注意1:如果软件安装包选择的是Server(即运行级别为multi-user.target),那么你 # systemctl isolate graphical.target 是没有效果的,因为没有装图形界面相着的组件包!你强行systemctl isolate graphical.target  不会报错,但也不会有效果

注意2:上述命令 # systemctl isolate XXX 只是临时将运行级别打到XXX级,你下次重启系统后,它还是会运行到安装配置时所选定的级别!如果要永久更改启动级别,需要通下面的命令修改默认启动级别 :

# systemctl set-default graphical.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target.

  可以看到上述命令是通过重建软链接文件 /etc/systemd/system/default.target 所指向的目标运行级别配置文件来达到配置变更的

  接着查看一下默认运行级别:

# systemctl get-default
graphical.target

  另外要说明一下,旧版的 /etc/inittab 配置文件在CentOS 8中已经不起作用了,废弃了

# cat /etc/inittab
# inittab is no longer used.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel
# graphical.target: analogous to runlevel
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target

  最后放一下CentOS 7之前的init runlevels与CentOS 7之后的systemctl targets的对照表:

init runlevels systemctl targets 说明
0 shutdown.target 系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
1 emergency.target 紧急维护单用户状态,root权限,用于系统维护,禁止远程登陆
2 rescue.target 多用户状态(没有NFS)
3 multi-user.target 完全的多用户状态(有NFS),登陆后进入控制台命令行模式(软件安装包选择过程中选择无图形界面的Server就是这个级别)
4 系统未使用,保留
5 graphical.target X11控制台,登陆后进入图形GUI模式(软件安装包选择过程中选择带图形界面的Server with GUI就是这个级别)
6 系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

给Linux小白的CentOS8.1基本安装说明的更多相关文章

  1. linux小白成长之路6————安装Java+Apache(httpd)+Tomcat

    [内容指引] 安装Java环境: 查看JDK版本: 安装Apache(httpd); 安装Tomcat: 设置服务开机启动. 1.安装Java环境 指令: yum intall java-1.8.0* ...

  2. linux小白成长之路5————安装Docker

    1.安装docker 命令: yum -y install docker   2.启动docker 命令: systemctl start docker.service 3.查看docker版本 ...

  3. linux小白成长之路10————SpringBoot项目部署进阶

    [内容指引] war包部署: jar包部署: 基于Docker云部署. 一.war包部署 通过"云开发"平台初始化的SpringBoot项目默认采用jar形式打包,这也是我们推荐的 ...

  4. 【转载】Linux小白福利:《超容易的Linux系统管理入门书》(三)在虚拟机上安装Linux

    本篇是Linux小白最佳实践第3篇,目的就是让白菜们自己动手安装个Linux玩玩.如果你是Linux小白,请务必亲自动手来安装.不想安装多个操作系统的,虚拟机是最佳选择,一台电脑上可以用虚拟机安装7. ...

  5. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

  6. ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路

    一.前言  最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持 ...

  7. 【Linux学习笔记】Linux-CentOS下安装Redis

    虚机装了个Linux,尝试安装了一下Redis这款NoSQL数据库玩玩,作为Linux小白,我安装的是有可视化桌面的CentOS,所以不是纯命令行操作,怎么方便怎么来嘛~ 1.官网下载Redis到指定 ...

  8. CentOS8 AnolisOS8 yum安装 No match for argument: htop Error: Unable to find a match: htop

    这里写自定义目录标题 CentOS8 AnolisOS8 yum安装失败 安装失败原因 阿里云官方镜像主页 正确的操作步骤 学习交流 My Blog 技术交流 CentOS8 AnolisOS8 yu ...

  9. Linux环境搭建-在虚拟机中安装Centos7.0

    最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...

随机推荐

  1. iOS中的系统目录(Documents、tmp、Library)、RunLoop的一些知识点

    学习内容 欢迎关注我的iOS学习总结--每天学一点iOS:https://github.com/practiceqian/one-day-one-iOS-summary 实现轮播图需要注意的地方 需要 ...

  2. 接口testing简介

    一.基础介绍 1.什么是接口 我们常说的接口一般指2种1)API:应用程序编程接口 2)GUI:图形用户界面(接口) 这里我们主要说API——接口测试   2.接口测试的目的 测试接口的正确性和稳定性 ...

  3. @vue/cli 4.0.5 学习记录

    1. Vue CLI (@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue 命令.Vue CLI 插件的名字以 @vue/cli-plugin- (内建插件) 或 vue-cli ...

  4. Json转化与ExtJS树(后台处理)

    一.JSON对格式化数据的操作: 1.导入依赖包: import org.json.JSONArray; import org.json.JSONException; import org.json. ...

  5. npm run build 时 报 __webpack_public_path__ = window.webpackPublicPath; 中的windows未定义

    原本 webpack.js在webpack.config.babel.js同目录下,在app.jsx中引用,用mac打包没问题,但是window就报window未定义,改到src和app.jsx同目录 ...

  6. python基本数据类型;字符串及其方法三:

    ###################判断类型################### ######################################################### ...

  7. HDU3829 Cat VS Dog

    题目链接:https://vjudge.net/problem/HDU-3829 题目大意: 有\(P\)个小孩,\(N\)只猫,\(M\)只狗.每个小孩都有自己喜欢的某一只宠物和讨厌的某一只宠物(其 ...

  8. php 序列化

    PHP serialize() 函数 serialize() 函数用于序列化对象或数组,并返回一个字符串. serialize() 函数序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和 ...

  9. Python面向对象的特征跟私有属性

     面向对象的三大特征 继成.封装.多态: 继承:一个类可以继承一个或多个类,被继承的类叫做父类,继承的类叫做子类 封装:将数据和方法放在了一个类中就构成了封装 多态:指的一类事物有多重形态,一个抽象类 ...

  10. 利用Nginx设置跨域的方式

    1.服务端可控,添加响应头 2.服务端不可控.通过Nginx反向代理 3.服务端不可控.通过Nginx反向代理添加响应头 第一种方法.服务端可控时,可以在服务器端添加响应头(前端+后端解决) 浏览器地 ...