zoukankan      html  css  js  c++  java
  • CentOS7.5 系统最小化安装与初始化配置

     

     

    CentOS7.5 系统最小化安装与初始化配置


    1.安装标准化的系统

     

    1.1.系统安装期间的语言

    • 选择:中文-简体中文,安装完成也会默认支持中文输出,便于管理

     

    1.2.时区选择

    • 亚洲上海,CST时区(东八区用)

     

    1.3.分区方式

    挂载路径分区格式分区大小备注信息
    swap分区 --- 内存的2倍 交换分区,如果是虚拟机可以不创建
    /boot --- 500MB 启动分区,如果不分配磁盘被占满会无法启动系统
    / ext4 剩余空间 后续有其他需求,可以增加磁盘独立创建分区

     

    1.4.安装包的选择

    • 如果是一般的DVD镜像,建议选择最小化安装,然后手动选择安装以下软件包组:
    类别安装包备注信息
    基本系统(Base System) Base 基本,系统组件
    --- compatibility libraries 兼容程序库
    --- Debugging Tools 调试工具
    开发(Development) Development Tools 开发工具,cmake,gcc
    语言支持 English 英语
    --- Chinese 汉语
    • 如果是minimal的镜像,需要的安装包在装完系统后安装即可

     

    1.5.创建系统用户

    管理员用户:root
    普通用户:自定义一个
    

     

    1.6.安全选项

    • kdump:一般用不着关闭即可

    2.修改 CentOS7.5 的网络配置

     

    2.1.修改IP地址为固定地址

    • 1)方法1:图形界面修改
    nmtui      # 类似 CentOS6 下的 setup 命令,可以用图形界面配置IP,主机名,DNS等信息
    
    • 2)方法2:手动修改网卡配置文件
    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    ------------------------------------
    [root@demohost tools]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
    NAME=ens33
    DEVICE=ens33
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=none
    DEFROUTE=yes
    IPADDR=192.168.1.200
    PREFIX=24
    GATEWAY=192.168.1.2    #默认网关,虚拟机安装的话,通常是2,也就是VMnet8的网关设置(增加)
    IPV4_FAILURE_FATAL=no
    DNS1=202.106.0.20
    DNS2=8.8.8.8
    IPV6INIT=no
    IPV6_AUTOCONF=no
    IPV6_DEFROUTE=no
    IPV6_PEERDNS=no
    IPV6_PEERROUTES=no
    IPV6_PRIVACY=no
    IPV6_FAILURE_FATAL=no
    ARPCHECK=no        # 禁用ARP检查
    --------------------------------------
    
    • 配置完成重启网卡,进行测试,之后就可以使用 CRT 等工具进行连接配置
    systemctl restart network
    ip add
    ping www.baidu.com
    
    • 备注:默认最小化安装完CentOS7,网络并不会启动需要手动启动
    • 删除 UUID,MAC 地址,禁用 IPv6 配置等便于虚拟机克隆

     

    2.2.创建工作目录

    mkdir -p /opt/{tools,scripts}
    mkdir -p /data/backup
    cd /opt/tools/
    

     

    2.3.设置 DNS 和主机名

    • 修改服务器主机名
    vi /etc/hostname 
    --------------------------------
    demohost
    -------------------------------
    
    • 设置hosts域名解析
    vi /etc/hosts
    --------------------------------
    192.168.1.200    demohost
    --------------------------------
    
    • 设置DNS解析
    vi /etc/resolv.conf 
    --------------------------------
    nameserver 223.5.5.5        # alidns 出问题还是较少的
    nameserver 223.6.6.6
    nameserver 8.8.8.8          # Google dns
    --------------------------------
    

    3.配置阿里云 yum 源

     

    3.1.配置阿里云 base 源

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  
    cat /etc/yum.repos.d/CentOS-Base.repo
    

     

    3.2.配置阿里云 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  
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    cat /etc/yum.repos.d/epel.repo
    

     

    3.3.创建 yum 缓存进行测试

    yum clean all
    yum makecache fast
    

     

    3.4.安装常用工具

    • 主要有 wget,vim,rz,sz,tree,dos2unix,ifconfig,nslookup 等
    yum install gcc gcc-c++ cmake pcre pcre-devel zlib zlib-devel openssl openssl-devel vim wget telnet setuptool lrzsz dos2unix net-tools bind-utils tree screen iftop ntpdate tree lsof iftop iotop -y
    yum groupinstall "Development tools" -y
    

    4.配置系统环境变量

     

    4.1.历史命令记录

    sed -i s#HISTSIZE=1000#HISTSIZE=10000#g /etc/profile
    cat /etc/profile|grep HISTSIZE=10000
    

     

    4.2.设置超时自动注销登陆

    # 8h=28800s
    echo " " >> /etc/profile
    echo "# Auto-Logout for 4 hours by zhaoshuai on $(date +%F)." >> /etc/profile
    echo "export TMOUT=28800" >> /etc/profile
    tail -4 /etc/profile
    source /etc/profile
    echo $TMOUT
    

    5.修改内核参数(根据实际需求选择)

     

    5.1.修改文件句柄数

    vim /etc/security/limits.conf 
    -----------------------------------
    # 系统最大连接数
    *    soft    nofile    65535
    *    hard   nofile    65535
    *    soft    nproc    65535
    *    hard   nproc    65535
    -----------------------------------
    

     

    5.2.配置 TIME_WAIT 参数,清理超时连接

    netstat -anptl|grep TIME_WAIT|wc -l
    echo " " >> /etc/sysctl.conf
    echo "# made by zhaoshuai for kill time_wait on $(date +%F)." >> /etc/sysctl.conf
    echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_orphan_retries = 2" >> /etc/sysctl.conf
    echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf
    tail -8 /etc/sysctl.conf
    sysctl -p 
    netstat -anptl|grep TIME_WAIT|wc -l
    

     

    5.3.让系统自动回收内存 cache

    echo " ">>/etc/sysctl.conf
    echo "# Automatic recovery memory on $(date +%F)">>/etc/sysctl.conf
    echo "vm.extra_free_kbytes=209196">>/etc/sysctl.conf
    sysctl -p
    

    6.配置系统安全设置

     

    6.1.修改 ssh 配置

    • 加速远程 ssh 连接,只监听 IPv4 端口,关闭 GSSAPI 秘钥认证,关闭 DNS 解析
    # vim /etc/ssh/sshd_config
    ------------------------------------
    sed -i s/'#ListenAddress 0.0.0.0'/'ListenAddress 0.0.0.0'/g /etc/ssh/sshd_config
    sed -i s/'GSSAPIAuthentication yes'/'GSSAPIAuthentication no'/g /etc/ssh/sshd_config
    sed -i s/'#UseDNS yes'/'UseDNS no'/g /etc/ssh/sshd_config
    
    grep ListenAddress /etc/ssh/sshd_config
    grep GSSAPIAuthentication /etc/ssh/sshd_config
    grep UseDNS /etc/ssh/sshd_config
    ------------------------------------
    
    • 重启 sshd 服务
    /bin/systemctl restart  sshd.service
    /bin/systemctl status  sshd.service
    

     

    6.2.关闭 selinux

    • 关闭selinux(立即生效,重启失效)
    getenforce
    setenforce 0
    getenforce
    
    • 永久关闭selinux(重启也生效)
    sed -i s#SELINUX=enforcing#SELINUX=disabled#g /etc/selinux/config
    cat /etc/selinux/config |grep SELINUX=disabled
    
    • 备注:
    # Enforcing/enabled			    # 执行,强制执行,开启状态1
    # Permissive/disabled			# 许可的,自由的,关闭状态0
    

     

    6.3.关闭防火墙

    • 内网环境一般不需要使用防火墙
    systemctl status  firewalld
    systemctl stop firewalld
    systemctl disable firewalld
    systemctl status  firewalld
    

    7.关闭其他不用的服务

     

    7.1.关闭邮箱服务

    • CentOS7 默认安装并启动 postfix,而不是 sendmail
    netstat -anptl
    systemctl stop  postfix
    systemctl disable  postfix
    systemctl status  postfix
    netstat -anptl
    

    8.配置时间同步

     

    8.1.安装ntp服务并配置开机自启动

    • CentOS7 默认的时间同步服务是chrony,这里为了方便使用ntp服务
    yum -y install ntp
    systemctl enable ntpd
    systemctl start ntpd
    systemctl status ntpd
    

     

    8.2.手动进行时间同步

    date
    /usr/sbin/ntpdate ntp1.aliyun.com
    

     

    8.3.配置定时任务自动同步时间

    echo "# made by zhaoshuai for sync time on $(date +%F)">> /var/spool/cron/root
    echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1' >>/var/spool/cron/root
    crontab -l
    
    • 注意:
    1)时区应该为CST为中部时区,如果是EST则为东部时区
    2)安装CentOS系统时要去掉夏令时的选项,否则在夏令时的那一天会有时间的自动变换,
    3)如果某个服务在时间上有要求就会导致该服务承载的业务出现问题,所以要关闭夏令时
    

    9.更新系统内核

     

    9.1.更新依据

    1)一般来说建议更新到最新的内核版本,防止已知的系统漏洞问题
    2)如果要安装指定版本的软件则不能随意升级内核版本
    3)如果是集群中的一台新增节点,需要保持集群的统一性,也不能进行升级
    

     

    9.2.内核升级的方法

    • 1)升级前后需要查看内核版本
    cat  /etc/redhat-release 
    ----------------------------
    [root@demohost tools]# cat  /etc/redhat-release 
    CentOS Linux release 7.5.1804 (Core) 
    ----------------------------
    
    • 2)更新内核
    yum update
    
    • 3)内核升级完成需要重启系统才可以生效
    reboot
    
    • 注意:
    1)内核升级期间一定不可以中断操作,否则重启后会无法进入系统
    2)内核升级期间出错的处理方法:
    需要连到 tty 终端手动调整开机启动的内核,登陆系统后手动修改内核启动顺序,然后再次进行内核升级尝试修复
    

     

    9.3.拓展:yum update 与 upgrade 的区别?

    1)update会查询互联网上最新的内核软件包进行升级
    2)upgrade只查询当前yum源中比目前已安装软件版本高的那些
    3)总体来说update升级更加彻底,我一般使用这个

     10.命令别名设置 vim ~/.bashrc   # 本人常用

    复制代码
    alias 30='PS1="[e[1;30m][u@h W]\$ [e[0m]"'
    alias 31='PS1="[e[1;31m][u@h W]\$ [e[0m]"'
    alias 32='PS1="[e[1;32m][u@h W]\$ [e[0m]"'
    alias 33='PS1="[e[1;33m][u@h W]\$ [e[0m]"'
    alias 34='PS1="[e[1;34m][u@h W]\$ [e[0m]"'
    alias 35='PS1="[e[1;35m][u@h W]\$ [e[0m]"'
    alias 36='PS1="[e[1;36m][u@h W]\$ [e[0m]"'
    alias cl='clear'
    alias df='df -h'
    alias ll='ls -lh'
    alias lld='ls -lhd'
    alias jjar="java -jar $@"
    alias ipa="ip a"
    
    alias cdnet="cd /etc/sysconfig/network-scripts/"
    alias lsnet="ls /etc/sysconfig/network-scripts/"
    alias yin="yum install -y"
    alias yre="yum remove -y"
    alias ls='ls --color=auto'
    alias cl="clear"
    alias lld="ll -d"
    alias df="df -h"
    alias du="du -h"
    alias dus="du -sh"
    alias dft="df -hT"
    alias pp="ping -c 2 8.8.8.8"

    # 退出保存
    最后需要source ~/.bashrc 即可
    复制代码
  • 相关阅读:
    IDEA搭建《算法》第四版的开发环境
    tomcat源码环境搭建
    cap定理
    idea jdk 源码搭建
    2020-04-07 学习记录
    idea 格式化代码
    Ajax工作原理
    prototype封装继承
    作用域
    原型链的原理
  • 原文地址:https://www.cnblogs.com/skyhu365/p/12835605.html
Copyright © 2011-2022 走看看