#!/bin/bash
#此脚本用于centos7系统初始化操作
#关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#优化ssh连接
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
#安装常用工具
yum install vim lsof net-tools make psmic tree wget -y
#修改yum源,使用阿里云
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
#修改最大打开文件数,默认为1024
sed -i 's/#DefaultLimitNOFILE=/DefaultLimitNOFILE=102400/g' /etc/systemd/system.conf
sed -i 's/#DefaultLimitNPROC=/DefaultLimitNPROC=102400/g' /etc/systemd/system.conf
egrep 'DefaultLimitNPROC|DefaultLimitNOFILE' /etc/systemd/system.conf
#关闭邮件服务
systemctl stop postfix && systemctl disable postfix
#设置时间更新同步
yum install ntp ntpdate -y
timedatectl set-timezone Asia/Shanghai
echo "设置每天12点同步时间"
cat > /var/spool/cron/root << EOF
0 12 * * * /usr/sbin/ntpdate ntp1.aliyun.com
EOF
#修改内核参数
echo "优化内核中"
cat >> /etc/security/limits.conf << EOF
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
EOF
source /etc/security/limits.conf
cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_nonlocal_bind = 1
#允许非本地IP地址socket监听,当主机作为网关、反向代理或负载均衡器实现双机热备高可用时,主机需要绑定监听虚拟VIP地址时,必须开启此项。
net.ipv4.ip_forward = 1
#开启IPv4转发。当服务器作为路由网关、反向代理与负载均衡(开启客户端IP透传时)必须开启。
net.ipv4.tcp_timestamps = 1
#开启TCP时间戳,以一种比重发超时更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。默认为0不启用。
fs.file-max = 6553560
#系统所有进程一共可以打开的文件数量,即系统当前最大的文件句柄数,属于系统级别的限制,默认值大小通常与系统物理内存有关。注意:ulimit的open file值(默认1024)是单个进程可以打开的最大文件数,在高并发业务下,这个2个值都需要进行调整。
net.ipv4.tcp_tw_reuse = 1
#默认为0不启用,设置为1启用tcp复用,表示允许将TIME_WAIT状态的socket重新用于新的TCP链接,这对于高并发的服务器来说意义重大,因为总有大量TIME_WAIT状态的链接存在。
net.ipv4.tcp_tw_recycle = 1
#默认为0表示关闭,为1时表示开启TCP连接中TIME-WAIT sockets的快速回收,用于大量TIME_OUT场景。
net.ipv4.icmp_echo_ignore_broadcasts = 1
#忽略icmp ping广播包,避免放大攻击。
net.ipv4.icmp_ignore_bogus_error_responses = 1
#开启恶意icmp错误消息保护
EOF
sysctl -p
echo "配置完成,请重启服务器....."
|