#!/usr/bin/env bash#设置环境变量export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binfunction kernel () {echo "#CTCDN系统优化参数#关闭ipv6net.ipv6.conf.all.disable_ipv6 = 1net.ipv6.conf.default.disable_ipv6 = 1#决定检查过期多久邻居条目net.ipv4.neigh.default.gc_stale_time=120#使用arp_announce / arp_ignore解决ARP映射问题net.ipv4.conf.default.arp_announce = 2net.ipv4.conf.all.arp_announce=2net.ipv4.conf.lo.arp_announce=2# 避免放大攻击net.ipv4.icmp_echo_ignore_broadcasts = 1# 开启恶意icmp错误消息保护net.ipv4.icmp_ignore_bogus_error_responses = 1#关闭路由转发net.ipv4.ip_forward = 0net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0#开启反向路径过滤net.ipv4.conf.all.rp_filter = 1net.ipv4.conf.default.rp_filter = 1#处理无源路由的包net.ipv4.conf.all.accept_source_route = 0net.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 = 65536kernel.msgmax = 65536#设置最大内存共享段大小byteskernel.shmmax = 68719476736kernel.shmall = 4294967296#timewait的数量,默认180000net.ipv4.tcp_max_tw_buckets = 6000net.ipv4.tcp_sack = 1net.ipv4.tcp_window_scaling = 1net.ipv4.tcp_rmem = 4096 87380 4194304net.ipv4.tcp_wmem = 4096 16384 4194304net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目net.core.netdev_max_backlog = 262144#限制仅仅是为了防止简单的DoS 攻击net.ipv4.tcp_max_orphans = 3276800#未收到客户端确认信息的连接请求的最大值net.ipv4.tcp_max_syn_backlog = 262144net.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 = 1net.ipv4.tcp_mem = 94500000 915000000 927000000net.ipv4.tcp_fin_timeout = 1#当keepalive 起用的时候,TCP 发送keepalive 消息的频度 。缺省是2 小时net.ipv4.tcp_keepalive_time = 1800net.ipv4.tcp_keepalive_probes = 3net.ipv4.tcp_keepalive_intvl = 15#允许系统打开的端口范围net.ipv4.ip_local_port_range = 1024 65000#修改防火墙表大小,默认65536net.netfilter.nf_conntrack_max=655350net.netfilter.nf_conntrack_tcp_timeout_established=1200#以下2条是Docker优化选项#net.bridge.bridge-nf-call-iptables = 1#net.bridge.bridge-nf-call-ip6tables = 1# 确保无人能修改路由表net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0net.ipv4.conf.all.secure_redirects = 0net.ipv4.conf.default.secure_redirects = 0" >> /etc/sysctl.conf#是否开启路由转发read -r -p "是否开启路由转发? [y|n] " inputcase $input iny)sed -i "s#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g" /etc/sysctl.confsed -i "s#net.ipv4.conf.all.send_redirects = 0#net.ipv4.conf.all.send_redirects = 1#g"/etc/sysctl.confsed -i "s#net.ipv4.conf.default.send_redirects = 0#net.ipv4.conf.default.send_redirects = 1#g" /etc/sysctl.confsysctl -pecho "优化完成,程序退出";;n)sysctl -pecho "优化完成,程序退出"exit;; esac }#是否优化内核 function openkernel () {read -r -p "是否优化内核? [y/n] " inputcase $input iny)kernel;;n)echo "优化完成,程序退出"exit;;esac }#修改文件数限制 function openfile () {read -r -p "是否修改打开文件数的限制? [y/n] " inputcase $input iny)echo -e "* soft nofile 1024000n* hard nofile 1024000nhive- nofile 1024000nhive- nproc1024000" >> /etc/security/limits.confopenkernel;;n)openkernel;;esac }#修改用户进程限制 function userlimits () {read -r -p "是否加大普通用户限制? [y/n] " inputcase $input iny)sed -i 's#4096#65535#g'/etc/security/limits.d/20-nproc.confopenfile;;n)openfile;;esac }#修改主机名 function hostname () {read -r -p "是否要修改主机名? [y/n]" inputcase $input iny)read -r -p "请输入主机名:" hostnamehostnamectl set-hostname $hostnameuserlimits;;n)userlimits;;esac }#基础优化函数 function All () {yum -y install epel-releaseyum updateyum -y install net-tools tree lrzsz unzip telnet vim gcc cmake wget git ntpdate bash-completionsed -i "/^SElinux/s#enforcing#disabled#g" /etc/selinux/configcp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeecho -e "*/1 * * * * ntpdate ntp1.aliyun.com" > /var/spool/cron/roothostname }echo "--------------------------------------------------------------------" echo "本脚本可以根据需求选择要优化的选项-只是针对刚刚安装好的系统做优化,并且保证正常上网" echo "--------------------------------------------------------------------" echo "请选择你要使用的选项:" echo "(0) 基本优化" echo "(9) Exit" echo "--------------------------------------------------------------------" read -p "请输入选项编号>>>>:" inputcase $input in0)echo "-----------执行基本优化---------------"sleep 1All;;9)echo "-----------退出脚本---------------"exit;; esac
推荐阅读
- 电脑怎么还原系统 电脑还原系统详细介绍
- vmware workstation 安装centos-vmware workstation安装linux系统-
- 开源监控系统wgcloud-v3.3.0发布
- 分布式系统架构
- win7桌面文件路径修改-win7系统桌面文件路径修改-
- win7系统如何关闭UAC功能控制的问题
- 新手教程,Linux系统下MySQL的安装
- 让重装系统更简单:无需使用U盘,3分钟带你体验“云重装”
- 开源NAS系统OpenMediaVault安装与体验
- 七氟丙烷气体灭火系统要求?七氟丙烷灭火系统设置要求