美文网首页
linux系统优化

linux系统优化

作者: 一剑仙人跪_ | 来源:发表于2019-08-17 09:34 被阅读0次

    转载:CentOS7.4.1708查看系统相关信息及系统的初步优化-Mr.Xiong`s 运维日志-51CTO博客 https://blog.51cto.com/mrxiong2017/2084661

    CentOS7.4.1708查看系统相关信息及系统的初步优化

    一、常用操作

    1,查看系统版本号

    [root@localhost ~]# cat /etc/redhat-release 
    CentOS Linux release 7.4.1708 (Core)
    

    2.查看主机名

    [root@localhost ~]# hostname
    localhost.localdomain
    

    3.显示系统名、节点名称、操作系统的发行版号、操作系统版本、运行系统的机器 ID 号

    [root@localhost ~]# uname -a
    Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    

    4.查看系统位数

    [root@localhost ~]# getconf LONG_BIT
    64
    

    5.查看系统版本

    [root@localhost ~]# cat /proc/version
    Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
    [root@localhost ~]#
    

    6.查看系统内存使用情况

    [root@localhost ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:            976         119         564           6         291         676
    Swap:          2047           0        2047
    

    7.查看CPU信息

    [root@localhost ~]# cat /proc/cpuinfo
    [root@localhost ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c      1  Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
    

    8.查看内存信息

    [root@localhost ~]#  cat /proc/meminfo
    

    9.查看Linux系统负载信息

    [root@LinServ-1 ~]# uptime -V    #显示uptime命令版本信息
    procps version 3.2.7
    [root@LinServ-1 ~]# uptime
    15:31:30 up 127 days,  3:00,  1 user,  load average: 0.00, 0.00, 0.00
    

    15:31:30 //系统当前时间
    up 127 days, 3:00 //主机已运行时间,时间越大,说明你的机器越稳定。
    1 user //用户连接数,是总连接数而不是用户数
    load average: 0.00, 0.00, 0.00 // 系统平均负载,统计最近1,5,15分钟的系统平均负载

    如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。

    双CPU服务器一般标准以5-10 低于5系统不繁忙,5-10相对繁忙

    二、修改IP地址、网关、主机名、DNS等

    1.修改IP、网关、DNS和网卡自动启动

          以root权限登陆centos7并编辑vi /etc/sysconfig/network-scripts/ifcfg-ens33这个文件,如下:
    
    TYPE=Ethernet      
    BOOTPROTO=static  #设置静态Ip      
    DEFROUTE=yes      
    IPV4_FAILURE_FATAL=no      
    IPV6INIT=yes      
    IPV6_AUTOCONF=yes      
    IPV6_DEFROUTE=yes      
    IPV6_FAILURE_FATAL=no      
    NAME=eno16777736      
    UUID=4f40dedc-031b-4b72-ad4d-ef4721947439      
    DEVICE=eno16777736      
    ONBOOT=yes     #这里如果为no的话就改为yes,表示网卡设备自动启动      
    PEERDNS=yes      
    PEERROUTES=yes      
    IPV6_PEERDNS=yes      
    IPV6_PEERROUTES=yes      
    IPV6_PRIVACY=no
    GATEWAY=192.168.10.2     #这里的网关地址就是第二步获取到的那个网关地址      
    IPADDR=192.168.10.150    #配置ip,在第二步已经设置ip处于192.168.10.xxx这个范围,我就随便设为150了,只要不和网关相同均可      
    NETMASK=255.255.255.0    #子网掩码      
    DNS1=202.96.128.86     #dns服务器1,填写你所在的网络可用的dns服务器地址即可      
    DNS2=223.5.5.5        #dns服器2
    

    :wq 保存并退出

    重启网卡服务,执行   /etc/init.d/network restart
    

    2.修改主机名

    [root@localhost~]# vi /etc/hostname 
    mrxiong.test.com
    ~                                                                                                                                                            
    ~                                                                                                                                                            
    ~                                                                                                                                                            
    ~                                                                                                                                                            
    
    :wq
    [root@localhost ~]# reboot
    

    3.修改全局DNS

    [root@localhost~]# vi /etc/resolv.conf 
    #Generated by NetworkManager
    search test.com
    nameserver 8.8.8.8                                                                                                                                                           
    ~                                                                                                                                                            
    ~                                                                                                                                                            
    ~                                                                                                                                                            
    
    :wq
    [root@localhost ~]# reboot
    

    三、关闭Selinux,清空iptables

    1.关闭selinux

    ★修改配置文件需要重启机器:

    修改/etc/selinux/config 文件

    [root@localhost~]#cp /etc/selinux/config /etc/selinux/config.bak  #备份需要修改的文件
    [root@localhost~]#vim /etc/selinux/config
       将SELINUX=enforcing改为SELINUX=disabled
      :wq  #保存并退出
    [root@localhost~]#reboot
    

    或者:

    [root@localhost~]#cp /etc/selinux/config /etc/selinux/config.bak  #备份需要修改的文件
    [root@localhost~]#sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 
    [root@localhost~]#reboot
    

    查看更改后的结果

    grep SELINUX=disabled /etc/selinux/config
    

    ★临时关闭(不用重启机器)

    setenforce 0 #设置SELinux 成为permissive模式

    setenforce 1 设置SELinux 成为enforcing模式

    ★ getenforce #查看selinux当前状态

    2.清空iptables和禁止firewalld运行

    iptables –F #清理防火墙规则

    iptables –L #查看防火墙规则

    禁用/停止自带的firewalld服务

    停止firewalld服务

    systemctl stop firewalld.service
    

    禁用firewalld服务

    systemctl disable firewalld.service
    

    四、配置yum更新

    centos7更新163源方法:

    访问地址为:http://mirrors.163.com/.help/centos.html

    操作如下:

    #安装wget工具
    [root@localhost ~]# yum install wget -y   
    #备份现有的源
    [root@localhost~]#cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup   
    #下载163源
    [root@localhost~]#cd /etc/yum.repos.d/
    [root@localhost~]#wget   
    [root@localhost~]#mv -f CentOS7-Base-163.repo CentOS-Base.repo
    #清空及刷新YUM的缓存状态:
    [root@localhost~]#yum clean all   
    [root@localhost~]#yum makecache
    

    更新CentOS7和安装几个必要的软件

    [root@localhost~]#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*       #导入签名KEY到RPM
    [root@localhost~]#yum  upgrade -y                                 #更新系统内核到最新
    [root@localhost~]#yum --exclude=kernel* update               #更新系统软件而不更新内核
    [root@localhost~]#yum install lrzsz ntpdate sysstat -y            #安装几个必要的软件了
    

    五、定时自动更新服务器时间

    首先我们立即手动更新所有预先安装的软件

    yum -y update
    yum -y install cronie yum-cron
    

    设置crond.service服务自启动

    systemctl enable crond.service
    

    ★ 使用ntpdate命令进行更新:

    首先使用ntpdate测试时间服务器可否使用

    ntpdate time.windows.com
    

    ★设置linux自动每5分钟同步一次时间服务器进行时间同步

    [root@localhost~]#echo '###time sync by mrxiong at 2018-03-09###' >>/var/spool/cron/root
    [root@localhost~]#echo '*/5****/usr/sbin/ntpdate time.windows.com>/dev/null 2>&1'>>/var/spool/cron/root
    

    扩展:在机器数量少时,以上定时任务同步时间就可以了。如果机器数量大时,可以在网内另外部署一台时间同步服务器NTP Server

    查看定时任务,查看是否己设置成功

    Linux同步网络时间 - fei的专栏 - CSDN博客 https://blog.csdn.net/weiyuefei/article/details/71514133

     [root@localhost~]#crontab -l
    

    六、定时自动清理/var/spool/clientmquene/目录垃圾文件,防止inodes节点被占满

    ★ 手动清理方法:

    find /var/spool/clientmqueue/ -type f |xargs rm -f
    

    ★ 使用shell脚本+定时任务自动清理方法:

    [root@localhost ~]# mkdir /server/scripts -p
    [root@localhost ~]# vi /server/scripts/spool_clean.sh
    #!/bin/sh
    find /var/spool/clientmqueue/ -type f |xargs rm -f
    

    然后将其加入到crontab定时任务中

    echo '*/30 * * * * /bin/sh /server/scripts/spool_clean.sh >/dev/null 2>&1' >>/var/spool/cron/root
    

    检查一下定时任务

     crontab -l
    

    注意:

    centos5.8,默认没有clientmqueue

    centos6.4和centos7的要先安装sendmail才能有/var/spool/clientmqueue/ 这个目录

    [root@localhost ~]# yum install sendmail -y

    七、更改默认的SSH服务端口及禁止root用户远程连接

    [root@localhost ~]# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    [root@localhost ~]# vim /etc/ssh/sshd_config
    Port 2000          #ssh连接默认的端口是22,改为2000
    PermitRootLogin no    #root用户黑客都知道,禁止它远程登录
    PermitEmptyPasswords no        #禁止空密码登录
    UseDNS no              #不使用DNS
    [root@localhost ~]#systemctl restart sshd.service    #重启sshd服务
    [root@localhost ~]# netstat -lnt            #查看一下端口
    [root@localhost ~]# yum install lsof -y
    [root@localhost ~]# lsof -i:2000           #己知端口查服务
    [root@localhost ~]# netstat -an|grep -i est        #查看连接状态
    

    八、锁定关键系统文件chattr +i /etc/passwd

    chattr +i /etc/inittab

    chattr +i /etc/group

    chattr +i /etc/shadow

    chattr -i /etc/passwd 对/etc/passwd解锁

    可以防止黑客对系统的修改和攻击

    九、调整文件描述符大小

    ★ #查看文件描述符大小

    [root@localhost ~]# ulimit -n     
    1024
    

    配置文件描述符为65535

    [root@localhost ~]# echo '* - nofile 65535'>>/etc/security/limits.conf
    

    配置完成后,重新登录即可查看

    ★ 也可以把ulimit -SHn 65535命令加入到/etc/rc.local,然后每次重启生效

    [root@dingjian ~]cat >>/etc/rc.local<<EOF
    #open files
    ulimit -HSn 65535
    #stack size
    ulimit -s 65535
    EOF
    

    十、更改字符集、支持中文

    centos7的与centos6有少许不同:

    1.安装中文包:

    [root@localhost ~]#yum groupinstall "fonts"
    

    查看系统是否有安装中文语言包 (列出所有可用的公共语言环境的名称,包含有zh_CN)

    [root@localhost ~]#locale -a |grep "zh_CN"
    zh_CN
    zh_CN.gb1803
    0zh_CN.gb2312
    zh_CN.gbk
    zh_CN.utf8
    

    若发现以上几项,说明系统已安装中文语言包,无需再安装,

    [root@localhost ~]# cat /etc/locale.conf 
    LANG="en_US.UTF-8"
    [root@localhost ~]# echo $LANG
    en_US.UTF-8
    

    十一、清空/etc/issue.去除系统及内核版本登录前的屏幕显示

    /etc/issue #清空登陆显示的信息

    echo "welcome!">/etc/issue 或 vi /etc/issue #修改系统登陆时显示的信息

    十二、内核优化

    本优化适合apache,nginx,squid多种等web应用,特殊的业务也可能需要略作调整。

    ★centos7内核优化:

    [root@localhost ~]# vi /etc/sysctl.conf        #把以下的参数加到最后面
    #CTCDN系统优化参数
    #关闭ipv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    # 避免放大攻击
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    # 开启恶意icmp错误消息保护
    net.ipv4.icmp_ignore_bogus_error_responses = 1
    #关闭路由转发
    net.ipv4.ip_forward = 0
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    #开启反向路径过滤
    net.ipv4.conf.all.rp_filter = 1
    net.ipv4.conf.default.rp_filter = 1
    #处理无源路由的包
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.default.accept_source_route = 0
    #关闭sysrq功能
    kernel.sysrq = 0
    #core文件名中添加pid作为扩展名
    kernel.core_uses_pid = 1
    # 开启SYN洪水攻击保护
    net.ipv4.tcp_syncookies = 1
    #修改消息队列长度
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    #设置最大内存共享段大小bytes
    kernel.shmmax = 68719476736
    kernel.shmall = 4294967296
    #timewait的数量,默认180000
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096        87380   4194304
    net.ipv4.tcp_wmem = 4096        16384   4194304
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    #每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
    net.core.netdev_max_backlog = 262144
    #限制仅仅是为了防止简单的DoS 攻击
    net.ipv4.tcp_max_orphans = 3276800
    #未收到客户端确认信息的连接请求的最大值
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0
    #内核放弃建立连接之前发送SYNACK 包的数量
    net.ipv4.tcp_synack_retries = 1
    #内核放弃建立连接之前发送SYN 包的数量
    net.ipv4.tcp_syn_retries = 1
    #启用timewait 快速回收
    net.ipv4.tcp_tw_recycle = 1
    #开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout = 1
    #当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时
    net.ipv4.tcp_keepalive_time = 30
    #允许系统打开的端口范围
    net.ipv4.ip_local_port_range = 1024    65000
    #修改防火墙表大小,默认65536
    #net.netfilter.nf_conntrack_max=655350
    #net.netfilter.nf_conntrack_tcp_timeout_established=1200
    # 确保无人能修改路由表
    net.ipv4.conf.all.accept_redirects = 0
    net.ipv4.conf.default.accept_redirects = 0
    net.ipv4.conf.all.secure_redirects = 0
    net.ipv4.conf.d
    

    重新加载内核参数

    [root@localhost ~]#sysctl -p
    

    相关文章

      网友评论

          本文标题:linux系统优化

          本文链接:https://www.haomeiwen.com/subject/vrrhsctx.html