Linux服务器之CentOS的安装与配置


Linux服务器之CentOS的安装与配置

大家好,今天朱哥要和大家继续唠唠Linux系统,这一回我们的主角是:CentOS。她也是我最喜欢、最常用的Linux发行版。CentOS的全称是:Community Enterprise Operating System,她基于Red Hat Enterprise Linux(简称:RHEL)释出来的源代码重新编译而成。可以说,CentOS就是开源、免费版的RHEL。你会可能有疑问:都已经有RHEL了,为何还要再搞一个CentOS呢?别急,听朱哥慢慢道来!

1994年,有个叫Marc Ewing的小伙儿创建了自己的Linux发行版:Red Hat Linux。小Ewing的爷爷曾送给他一顶红帽子,他特别喜欢,经常戴着这顶帽子。Ewing在学校里是个出了名的编程小能手,同学们遇到啥问题也经常去找他请教。他还特别乐于助人,经常帮女同学们(也包括男同学...)修电脑。慢慢地,认识他的人就给取了个外号:Red Hat,这也正是红帽子名称的由来。

1995年,在国外卖光盘的Bob Young发现有个叫Red Hat Linux的系统盘卖得非常好,于是他就私下找到了软件的作者Marc Ewing以谋求合作。这俩人相见之后,简直是天雷勾地火,一拍即合!很快Young就收购了Ewing的公司,并重新组建了新公司:红帽公司(Red Hat)。

1999年,红帽公司成功上市,在当年也是创造了股市神话!红帽公司的客户都是一些大型企业,公司的收入也主要来源于企业服务。红帽公司虽然完全拥有 RHEL 的商标权和版权,但RHEL依然是基于Linux内核开发的发行版。由于Linux内核使用了GPL开源许可协议,红帽公司也必须遵照GPL协议开放RHEL的源代码。在2004年左右,社区里就聚集了一些爱好者,他们打算在开放的RHEL源码中移除RedHat商标和专用软件,然后重新编译一个新的Linux发行版,这就是CentOS!

2014年,RedHat宣布和CentOS开源项目展开合作,CentOS团队将被RedHat收编(发工资)。

2018年,IBM宣布以340亿美元的价格收购Red Hat,CentOS依然保持社区的运作方式。

简单来说: CentOS继承了RHEL稳定、可靠的优点,是目前最受企业欢迎的Linux发行版之一。


一. 系统安装

1.1 准备

CentOS已于2019年9与25日发布了最新的CentOS 8.0版,但在生产环境中我们还是优先选择相对稳定的版本。发布于2014年的CentOS 7,已经通过了关键的【五年考验】。接下来就和朱哥一起在VMware中安装CentOS 7操作系统吧。

首先,我们要下载CentOS 7的安装镜像文件。大家可以从官网或国内镜像源中下载最新的安装文件:

Linux服务器之CentOS的安装与配置

接下来,我们依然做以下准备:

  1. 在自己电脑上安装 VMware WorkstationVirtualBox 等虚拟化软件;
  2. 创建虚拟机、添加磁盘、设置虚拟机网络(可以先设置为桥接模式);
  3. 将下载好的镜像文件添加到CD驱动器中;
  4. 启动虚拟机,开始安装。


1.2 安装

运行模式: 当虚拟机从光驱启动后,屏幕上会提示选择运行模式。我们通过上下方向键选择第一个菜单项【Install CentOS 7】,然后回车:

Linux服务器之CentOS的安装与配置

语言选择:

这里要选择接下来安装过程中,窗口界面的语言类型。我们保持默认的英语,然后点击【Continue】按钮:

Linux服务器之CentOS的安装与配置

进入到主安装界面,我们可以在这里设置:【系统时间】、【磁盘分区】、【网络配置】等项目。

首先点击顶部的【DATE & TIME】菜单项,开始设置系统时间和时区:

Linux服务器之CentOS的安装与配置

系统时间: 这里我们主要设置时区,用鼠标点击世界地图中的区域,选择【上海】,然后点击左上角的 【Done】按钮完成设置:

Linux服务器之CentOS的安装与配置

回到主界面,接着点击【INSTALLATION DESTINATION】进行磁盘分区设置:

Linux服务器之CentOS的安装与配置

朱哥要为大家演示手动分区,因此在【Other Storage Options】选项中,点击选择【I will configure partitioning.】。然后点击左上角的【Done】按钮,开始设置分区:

Linux服务器之CentOS的安装与配置

CentOS 7中默认使用LVM进行分区管理,我们先点击【Click here to create them automatically.】,安装程序会自动创建一个分区方案:

Linux服务器之CentOS的安装与配置

自动创建的分区方案不一定满足我们真实的需求,我们还需要手动调整一下。朱哥建议至少保留三个分区:① /boot 用于系统引导;② swap 交换空间;③ / 系统目录。

鼠标点击选中 /home 分区,然后点击左下角的 【-】 按钮,先将该分区删除:

Linux服务器之CentOS的安装与配置

设置 swap 分区: 我们为系统预留4GB的虚拟内存。鼠标点击 swap 分区,在右侧编辑面板中,将其容量增到到 4096 MiB,然后点击右下角的 【Update Settings】更新设置:

Linux服务器之CentOS的安装与配置

设置根分区:将剩余的磁盘空间全都挂载到系统根目录 / 。鼠标点击 / 分区,在右侧编辑面板中,将其容量调到最大(可适当超出磁盘总容量,安装工具会自动计算识别)。然后点击右下角的 【Update Settings】按钮,更新设置:

Linux服务器之CentOS的安装与配置

分区规则配置完成后,再点击左上角的 【Done】按钮,提交分区方案:

Linux服务器之CentOS的安装与配置

这时安装程序会再次确认分区规则,我们点击右下角的【Accept Changes】按钮,应用配置:

Linux服务器之CentOS的安装与配置

再次回到主界面,接下来我们要修改系统的网络配置。鼠标点击【NETWORK & HOST NAME】菜单:

Linux服务器之CentOS的安装与配置

设置主机名:在左侧面面板的底部,可以根据自己的喜好修改主机名,输入完成后记得点击【Apply】按钮。

网络配置:在右侧面板的顶部,点击开关按钮,启用网络适配器。系统默认是通过DHCP动态获取IP地址的。如果希望设置一个固定的IP地址,可以点击右下角的 【Configure...】按钮,进行手动设置:

Linux服务器之CentOS的安装与配置

点击窗口头部的 【IPv4 Settings】标签页。然后点击 【Method】下拉框,从中选择【Manual】,将打开配置窗口:

Linux服务器之CentOS的安装与配置

Linux服务器之CentOS的安装与配置

在配置窗口中,点击右侧的 【Add】按钮添加配置。然后在【Address】框中详细设置IP地址、子网掩码、默认网关等参数。在【DNS servers】输入框中可以设置域名解析服务器的IP,我们添加了三个:114.114.114.114、223.5.5.5、223.6.6.6,中间用英文的逗号隔开。最后点击右下角的 【Save】按钮保存配置。 如:

Linux服务器之CentOS的安装与配置

回到网络配置界面,点击左上角的 【Done】按钮,完成配置:

Linux服务器之CentOS的安装与配置

到这里,主要的安装前配置就已经完成了。接下来我们点击右下角的 【Begin Installation】按钮,开始安装系统:

Linux服务器之CentOS的安装与配置

在系统安装过程中,可以创建系统用户以及修改 ROOT 用户的密码。

点击【USER CREATION】开始创建系统用户:

Linux服务器之CentOS的安装与配置

根据自己的喜好,设置用户全名、用户名和密码,然后点击左上角的 【Done】按钮完成创建。

注意: 如果你设置的密码较弱,系统会在底部弹出黄色背景的提示信息,如下图。此时需要点击2次 【Done】按钮。

Linux服务器之CentOS的安装与配置

回到用户界面,继续点击【ROOT PASSWORD】选项,为 root 用户设置初始密码:

Linux服务器之CentOS的安装与配置

输入密码后,点击左上角的【Done】按钮,保存配置:

Linux服务器之CentOS的安装与配置

再次回到用户界面,请耐心等待系统安装完成......

系统安装完成后,将会显示 Reboot 按钮,如:

Linux服务器之CentOS的安装与配置

我们只需要点击 【Reboot】按钮重启系统,CentOS也就顺利安装完成了!


二. 基础配置

系统安装完成后,我们还需要做一些简单的配置,这样用起来会更顺手。

2.1 常用配置

2.1.1 显示配置

修正中文乱码中文显示

<code>export LC_ALL='zh_CN.utf8'/<code>

如需修改主机名、欢迎信息,可执行:

<code>hostnamectl set-hostname LmkServer
vim /etc/motd/<code>

如需修改时区,可执行

<code>rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime/<code>


2.2.2 添加sudo 权限

系统安装过程中,我们创建了 lmk用户,我们可以为他添加 sudo 执行权限。

修改配置文件:/etc/sudoers,在该文件的100行左右,为 lmk 添加配置:

<code># 复制第100行的代码,将用户名改为当前管理员用户
# 100 root ALL=(ALL) ALL
# + 101 lmk ALL=(ALL) ALL/<code>


2.2.3 关闭SeLinux

SeLinux虽然提供了更强的安全防护,但也会让我们的操作变得很麻烦。这里我们先将其关闭。

  1. 永久有效修改 /etc/selinux/config 文件,将其中的 SELINUX=enforcing 修改为 SELINUX=disabled,然后重启系统。
  2. 即时生效执行命令:sudo setenforce 0


2.2.4 镜像加速

使用CentOS默认的软件源安装软件会非常慢,我们可以修改为国内的镜像。

先安装 wget 工具:

<code>sudo yum install -y wget/<code>

更新 yum 仓库配置:

<code>sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 

sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #基础

sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #扩展(可选) /<code>

更新系统软件:

<code># 清理本地缓存
sudo yum clean all

# 更新本地缓存
sudo yum makecache

# 更新系统
sudo yum -y update/<code>


2.2 内核清理

我们可以将一些已经过时的、无用的系统内核清理掉,节省磁盘空间。

查看当前系统的版本:

<code>cat /etc/redhat-release/<code>


删除多余内核

① 查询当前使用的内核版本,如:

<code># uname -sr
Linux 3.10.0-123.20.1.el7.x86_64/<code>

② 查询系统中存在的所有内核版本

<code># rpm -qa | grep kernel
kernel-3.10.0-123.el7.x86_64
kernel-3.10.0-123.20.1.el7.x86_64
kernel-devel-3.10.0-123.el7.x86_64/<code>

③ 删除多余内容

将低版本的内核及相关组件删除。(千万不要把正在使用的内核删掉!!!)

<code>sudo yum remove kernel-3.10.0-123.el7.x86_64 kernel-devel-3.10.0-123.el7.x86_64/<code>


2.3 常用软件

安装文件传输工具

<code>sudo yum -y install lrzsz/<code>

上传文件

<code>rz
# 或鼠标直接拖拽/<code>

下载文件

<code>sz 文件名/<code>


安装centos常用的软件包及工具

<code>sudo yum -y install gcc gcc-c++ make cmake sudo wget htop unzip zip bzip2 bzip2-devel p7zip readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui crontabs logwatch logrotate perl-Time-HiRes libcom_err-devel.i686 libcom_err-devel.x86_64 zlib-devel perl-CPAN gettext gettext-devel/<code>


三. 网络配置

3.1 IP

CentOS 7可以通过nmtui命令,以图形化的方式进行网络配置。配置的方式与我们在安装系统时的配置差不多,这里就不再重复介绍了。

配置文件示例

<code>TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
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="enp0s3"
UUID="c5f777d5-05bd-45bd-b73f-c5033922aaf2"
DEVICE="enp0s3"
ONBOOT="yes"
IPADDR="192.168.88.100"
PREFIX="24"
GATEWAY="192.168.88.2"
DNS1="114.114.114.114"

DNS2="223.5.5.5"
DNS3="223.6.6.6"
IPV6_PRIVACY="no"/<code>


3.2. 防火墙

3.2.1 介绍

CentOS 7 默认采用 firewalld 管理防火墙配置。firewalld服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别

drop: 丢弃所有进入的包,而不给出任何响应 block: 拒绝所有外部发起的连接,允许内部发起的连接 public: 允许指定的进入连接 external: 同上,对伪装的进入连接,一般用于路由转发 dmz: 允许受限制的进入连接 work: 允许受信任的计算机被限制的进入连接,类似 workgroup home

: 同上,类似 homegroup internal: 同上,范围针对所有互联网用户 trusted: 信任所有连接


3.2.2 使用方法

<code>systemctl start firewalld         # 启动,
systemctl enable firewalld # 开机启动
systemctl stop firewalld # 关闭
systemctl disable firewalld # 取消开机启动/<code>

具体的规则管理,可以使用 firewall-cmd,具体的使用方法可以

<code>firewall-cmd --help/<code>


3.2.2.1 查看规则

查看运行状态

<code>firewall-cmd --state/<code>

查看已被激活的 Zone 信息

<code>firewall-cmd --get-active-zones
public
interfaces: eth0 eth1/<code>

查看指定接口的 Zone 信息

<code>firewall-cmd --get-zone-of-interface=eth0
public/<code>

查看指定级别的接口

<code>firewall-cmd --zone=public --list-interfaces
eth0/<code>

查看指定级别的所有信息,譬如 public

<code>firewall-cmd --zone=public --list-all

public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:/<code>

查看所有级别被允许的信息

<code>firewall-cmd --get-service/<code>

查看重启后所有 Zones 级别中被允许的服务,即永久放行的服务

<code>firewall-cmd --get-service --permanent/<code>
3.2.2.2 管理规则
<code>firewall-cmd --panic-on           # 设置丢弃状态
firewall-cmd --panic-off # 取消丢弃
firewall-cmd --query-panic # 查看丢弃状态
firewall-cmd --reload # 更新规则,不重启服务
firewall-cmd --complete-reload # 更新规则,重启服务/<code>

添加某接口至某信任等级,譬如添加 eth0 至 public,再永久生效

<code>firewall-cmd --zone=public --add-interface=eth0 --permanent/<code>

设置 public 为默认的信任级别

<code>firewall-cmd --set-default-zone=public/<code>

a. 管理端口

列出 public 级别的被允许的进入端口

<code>firewall-cmd --zone=public --list-ports/<code>

允许 tcp 端口 80 至 public 级别,--permanent表示系统重启后仍然有效,没有这个参数重启后失效。

<code>firewall-cmd --zone=public --add-port=80/tcp --permanent/<code>

禁止 tcp 端口 80 至 public 级别

<code>firewall-cmd --zone=public --remove-port=80/tcp --permanent/<code>

允许某范围的 udp 端口至 public 级别,并永久生效

<code>firewall-cmd --zone=public --add-port=5060-5059/udp --permanent/<code>

b. 管理服务

添加 smtp 服务至 work zone

<code>firewall-cmd --zone=work --add-service=smtp/<code>

移除 work zone 中的 smtp 服务

<code>firewall-cmd --zone=work --remove-service=smtp/<code>

c. 配置 ip 地址伪装

查看

<code>firewall-cmd --zone=external --query-masquerade/<code>

打开伪装

<code>firewall-cmd --zone=external --add-masquerade/<code>

关闭伪装

<code>firewall-cmd --zone=external --remove-masquerade/<code>

d. 端口转发

要打开端口转发,则需要先

<code>firewall-cmd --zone=external --add-masquerade/<code>

然后转发 tcp 22 端口至 3753

<code>firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753/<code>

转发 22 端口数据至另一个 ip 的相同端口上

<code>firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100/<code>

转发 22 端口数据至另一 ip 的 2055 端口上

<code>firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100/<code>


四. 安装 Docker

已经有越来越多的企业使用docker来部署应用了,接下来就和朱哥一起安装一下docker吧。

4.1 配置软件源

安装 yum-utils 工具

<code>sudo yum install -y yum-utils \\
device-mapper-persistent-data \\
lvm2/<code>

添加软件仓库

<code>sudo yum-config-manager \\
--add-repo \\
https://download.docker.com/linux/centos/docker-ce.repo/<code>


4.2 安装Docker

<code>sudo yum install docker-ce docker-ce-cli containerd.io/<code>


4.3 启动配置

<code>sudo systemctl enable docker
sudo systemctl start docker/<code>


4.4 镜像加速

Docker官方的镜像仓库在国外,我们可以使用国内的镜像加速。

<code># 系统要求 CentOS 7 以上,Docker 1.10 以上。 
# 注意:这里使用的是朱哥的阿里云账号加速,你也可以换成自己的账号,详细方法请参考阿里云的介绍文档。
mkdir -p /etc/docker
tee /etc/docker/daemon.json <{
"registry-mirrors": ["https://k16l4r0k.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload

sudo systemctl restart docker/<code>


五. 安装Nginx

相信大家都听说过Nginx的大名吧,但是CentOS官方仓库中的Nginx版本很低。我们可以从Nginx官方安装最新版本。

5.1 配置软件源

添加文件 /etc/yum.repos.d/nginx.repo

<code>[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true/<code>


5.2 安装

<code>sudo yum install -y nginx/<code>


六. 总结

好累,终于把CentOS的安装与配置唠完了!今天我们比较细致地聊了聊CentOS的安装、配置以及常用软件的安装。但这也仅仅是个开始,Linux的门道还多着呢,学无止境啊! 这一篇的内容比较多,希望能对大家有所帮助。关于Docker、Nginx的配置和使用,朱哥会在后续的文章中为大家详细介绍,敬请关注!


分享到:


相關文章: