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的配置和使用,朱哥會在後續的文章中為大家詳細介紹,敬請關注!


分享到:


相關文章: