02_1_初始化環境搭建

一壶缘發表於2024-12-02

Centos7 初始化環境搭建

一、主機名配置

在CentOS7中,有三種定義的主機名:

  • 靜態的(Static hostname)

​ “靜態”主機名也稱為核心主機名,是系統在啟動時從/etc/hostname自動初始化的主機名。

  • 瞬態的(Tansient hostname)

​ “瞬態”主機名是在系統執行時臨時分配的主機名,例如,透過DHCP或mDNS伺服器分配。

  • 靈活的(Pretty hostname)

​ “靈活”主機名也有人叫做“別名”主機名。
​ “靈活”主機名則允許使用自由形式(包括特殊/空白字元)的主機名,以展示給終端使用者(如xh01@f5)。
​ “靜態”主機名和“瞬態”主機名都遵從作為網際網路域名同樣的字元限制規則。

檢視主機名
--transient 修改臨時主機名
--static 修改瞬態主機名
--pretty 修改靈活主機名
status 顯示當前主機名設定
set-hostname NAME 設定系統主機名
set-icon-name NAME 為主機設定icon名
set-chassis NAME 設定主機平臺型別名
//檢視一下當前主機名的情況
hostnamectl 
//或者,檢視全部三種主機名
hostnamectl status 
//只檢視靜態、瞬態或靈活主機名,分別使用--static,--transient或--pretty選項
[root@xh00 ~]# hostnamectl --static
[root@xh00 ~]# hostnamectl --transient
[root@xh00 ~]# hostnamectl --pretty  
//或者,檢視到的是瞬態的(Tansient hostname)
hostname 
//或者檢視主機名配置檔案,檢視到的是靜態的(Static hostname)
cat /etc/hostname
修改主機名
  • 臨時生效
hostname XXX               //只能臨時修改的主機名,當重啟機器後,主機名稱又變回來了。
  • 永久生效
hostnamectl set-hostname xxx  //永久性的修改主機名稱,重啟後能保持修改後的

一旦修改了靜態主機名,/etc/hostname 將被自動更新。然而,/etc/hosts 不會更新以儲存所做的修改,所以你每次在修改主機名後一定要手動更新/etc/hosts,之後再重啟CentOS 7。否則系統再啟動時會很慢。

二、時區配置

timedatectl
# timedatectl # 檢視系統時間方面的各種狀態
     Local time: Wed 2020-04-29 10:52:37 CST   當地時間
  Universal time: Wed 2020-04-29 02:52:37 UTC	倫敦時間
        RTC time: Wed 2020-04-29 02:52:37		硬體時間
       Time zone: Asia/Shanghai (CST, +0800)	時區:亞洲上海(東8區)UTC時間加上8等於當前時間
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
      
 timedatectl set-time “2020-04-29 11:30:00”	設定系統時間
timedatectl list-timezones	顯示系統的所有時區
timedatectl set-timezone “Asia/Shanghai”	設定系統時區
timedatectl set-local-rtc 0/1	設定系統時間計算方式,0表示使用utc時間計算方式
                                1 設定硬體時鐘為本地時間
看當前時間/日期/時區:timedatectl或者timedatectl status
檢視所有可用時區:timedatectl list-timezones
設定時區:timedatectl set-timezone “Asia/Shanghai”   
設定時間:timedatectl set-time HH:MM:SS
設定日期:timedatectl set-time YYYY-MM-DD
設定日期時間:timedatectl set-time “YYYY-MM-DD HH:MM:SS”
設定硬體時鐘為本地時間:timedatectl set-local-rtc 1
設定硬體時鐘為UTC時間:timedatectl set-local-rtc 0
啟動NTP時間同步(啟用NTP服務或者Chrony服務):timedatectl set-ntp true
禁用NTP時間同步:timedatectl set-ntp false

三、關閉NetworkManager、防火牆、selinux

systemctl stop NetworkManager 關閉network管理系統
systemctl disable NetworkManage 開機不啟動
systemctl stop firewalld 臨時關閉防火牆
systemctl disable firewalld 永久防火牆開機自啟動
systemctl status firewalld 檢視防火牆狀態
setenforce 0 臨時關閉SELinux
getenforce 檢視SELinux狀態
編輯/etc/selinux/config檔案,將SELINUX的值設定為disabled 永久關閉selinx
sed -i 's/^ *SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

四、網路配置

修改網路卡配置檔案 /etc/sysconfig/network-scripts 網路卡名稱
簡單網路卡配置
TYPE=Ethernet
BOOTPROTO=static IP地址靜態獲取
DEFROUTE=yes
DEVICE=eth0
ONBOOT=yes 開機自啟
IPADDR= IP地址
NETMASK=255.255.255.0 子網
GATEWAY=
DNS1=
重啟網路卡
  • systemctl restart network 重啟所有網路卡

    systemctl status network 檢視網路卡狀態

  • 單個網路卡關閉、開啟

    ifdown eth0 ifup eth0

/etc/resolv.conf DNS配置檔案

五、最佳化YUM源

  • 安裝 wget

    yum -y install wget yum-utils epel-release
    
    
  • 備份配置檔案

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
    
  • 下載新的配置檔案

    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
    
    
  • EPEL源

    mv /etc/yum.repos.d/epel.repo etc/yum.repos.d/epel.repo.backup
    mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    
  • 清除並生成快取

    yum clean all  && yum makecache
    
    
    
    

六、安裝必要的軟體

yum -y install gcc glibc gcc-c++ make cmake net-tools screen vim lrzsz tree dos2unix lsof tcpdump bash-completion ntp openssl openssl-devel

gcc glibc gcc-c++ make cmake 編譯器,編譯安裝的時候會用到
net-tools Linux核心中配置網路功能的工具
screen 用於命令列終端切換
vim 編輯器
lrzsz 與windows上傳下載
tree 樹形目錄
dos2unix 格式轉換實用命令
lsof 列出當前系統開啟的檔案
tcpdump 抓包工具
bash-completion 自動補全增強
ntp 同步網路事件
psmisc 幫助管理/proc目錄程式
openssl openssl-devel web安全通訊基石
nc 網路除錯探測工具
mtr 路由分析工具
nmap 埠檢視工具

七、sudo使用者制授權

useradd why                      建立why使用者
echo "123456" | passwd --stdin why         非互動模式設定why密碼
\cp /etc/sudoers /etc//sudoers.ori         備份sudo配置檔案
echo "why ALL=(ALL)NOPASSWD:ALL" >>/etc/sudoers    修改sudo配置檔案
tail -a /etc/sudoers                        檢視修改後的內容
visudo -c                                   檢查語法錯誤

​ 在實際應用中,因為怕造成難以挽回的失誤,所以儘量會避免root使用者直接操作,為了能讓普通使用者執行特殊命令,就需要對普通使用者sudo授權。sudo的配置檔案是/etc/sudoers,一般是沒有寫許可權的,新增寫許可權之後再修改檔案的內容。最常見的授權方式如下:hh ALL=(ALL) ALL

​ hh 想要授權的用記 ALL 充許從任何終端使用sudo (ALL) 切換到哪一個使用者執行命令

​ ALL 允許使用者執行任何命令,如果是多個命,用逗號分開 NOPASSWD 不用輸入密碼

  • 示例一 hh ALL=/bin/chmod,/bin/chown

​ 使用者hh就可以在任何機器上,切換到root使用者下執行/bin/chmod和/bin/chown命令,可以用 sudo -l檢視使用者可執行的 sudo命令。

  • 示例二 hh ALL=(root)/bin/chmod,/bin/chown

​ 這條語句和示例一產生的效果是一樣的,(user)如果不寫,則預設是root

  • 示例三 hh ALL=/usr/sbin/,/sbin/,!/usr/sbin/fdisk

​ 這句話表示hh使用者可以在任何機器上,切換到root使用者,執行/usr/sbin和/sbin目錄下的任何命令,單fdisk除外。

八、同步網路時間

  • 安裝ntpdate

    yum install ntpdate -y 
    
  • date命令

    date									檢視當前時間
    date -s '2021-10-29 21:57:00'			設定系統時間
    hwclock -w 								以系統時間為基準,修改硬體時間
    hwclock -s 								以硬體時間為基準,修改系統時間
    
  • ntpdate 命令

    ntpdate -u ntp1.aliyun.com  			網路時間同步命令
    
  • 加入crontab定時任務

    echo "*/20 * * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null &" >> /var/spool/cron/root
    

九、修改ulimit檔案描述符的最大值

​ [Linux]系統裡開啟檔案描述符的最大值,一般預設值是1024,對一臺繁忙的伺服器來說,這個值偏小,所以有必要重新設定linux系統裡開啟檔案描述符的最大值。那麼應該在哪裡設定呢?

  • 永久修改 編輯 /etc/security/limits.conf

    root soft nofile 65535
    root hard nofile 65535
    * soft nofile 65535
    * hard nofile 65535
    

    重新登入,不需要重啟,ulimit -a可以看到檔案開啟數已經是65535了

    [root@VM-123-187-centos ~]# ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 3894
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 65535  #檔案開啟數已經是65534了
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 3894
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    
    
  • 臨時修改

[root@VM-123-187-centos ~]# ulimit -n
1024
[root@VM-123-187-centos ~]# ulimit -n 65535
[root@VM-123-187-centos ~]# ulimit -n 
65535

十、配置SSH連線

​ 使用Xshell、SecureCRT等工具登入時,發現ssh連線超級慢,解決步驟如下

p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak		備份配置檔案
1.su                                   				(以root使用者登入)
2.vim /etc/ssh/sshd_config      					(編輯配置檔案)
3.輸入 /, 查詢GSSAPIAuthentication  				  賦值為 no(預設為yes)
4.輸入 /, 查詢UseDNS,賦值為 no					(該項預設不啟用的,要把前面的#刪除掉)
5.最後輸入!wq儲存檔案並退出
6.systemctl restart sshd