==========
/etc/security/limits.conf 管制PAM用户的关上文件数,过程数等 查看用户的限度,ps aux|grep httpd,获取pid,而后cat /proc/$pid/limits ========== 敞开多余的服务 如:postfix systemctl list-unit-files|grep 'enabled' ============= /etc/sysctl.conf 管制linux零碎的参数 kernel.pid_max = 4194303 cat /proc/sys/kernel/pid_max PID调配限度值。当内核下一个PID值达到这个值,它会回到最低的PID值。PID的最大的pid_max未调配,默认值为32768 fs.file-max = 999999 #零碎最大关上文件数 vm.swappiness = 0 #内存剩下多少应用虚拟内存(swap),0示意尽量不应用,10示意剩下10%时应用,即内存用到90%时应用。 net.ipv4.ip_local_port_range = 1024 65535 #示意用于向外连贯的端口范畴。缺省状况下很小:32768到61000,改为1024到65535。 net.ipv4.tcp_max_syn_backlog = 65535 #示意SYN队列长度,默认1024,改成65535,能够包容更多期待连贯的网络连接数。 linux零碎下内核参数优化,参数配置切当能够大大提高零碎的性能,也能够依据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻打等等。 依据TCP协定定义的3次握手断开连接规定,发动socket被动敞开的一方(服务器被动敞开连贯)。socket将进入TIME_WAIT状态,TIME_WAIT状态将继续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒,TIME_WAIT状态下的socket不能被回收应用,导致大量的TIME_WAIT,甚至比处于Established状态下的socket多的多,重大影响服务器的解决能力,甚至耗尽可用的socket,进行服务。 net.core.somaxconn = 65535 #Linux kernel参数,示意socket监听的backlog(监听队列)下限 net.ipv4.tcp_max_tw_buckets = 10000 #示意零碎同时放弃TIME_WAIT套接字的最大数量 net.ipv4.tcp_tw_reuse = 1 #示意开启重用。容许将TIME-WAIT sockets从新用于新的TCP连贯,默认为0,示意敞开; net.ipv4.tcp_tw_recycle = 1 #示意开启TCP连贯中TIME-WAIT sockets的疾速回收,默认为0,示意敞开。 tcp_tw_recycle: 回收TIME_WAIT连贯 对客户端和服务器同时起作用,开启后在 3.5*RTO 内回收,RTO 200ms~ 120s 具体工夫视网络情况。RTO(Retransmission TimeOut)重传超时工夫.内网情况比tcp_tw_reuse 稍快,公网尤其挪动网络大多要比tcp_tw_reuse 慢,长处就是可能回收服务端的TIME_WAIT数量 然而,有个小坑:当多个客户端通过NAT形式联网并与服务端交互时,服务端看到的是同一个IP,也就是说对服务端而言这些客户端实际上等同于一个,惋惜因为这些客户端的工夫戳可能存在差别,于是乎从服务端的视角看,便可能呈现工夫戳错乱的景象,进而间接导致工夫戳小的数据包被抛弃。客户端处于NAT很常见,根本公司家庭网络都走NAT. tcp_tw_reuse: 复用TIME_WAIT连贯 只对客户端起作用,1秒后能力复用,当创立新连贯的时候,如果可能的话会思考复用相应的TIME_WAIT连贯。通常认为tcp_tw_reuse比tcp_tw_recycle平安一些,这是因为一来TIME_WAIT创立工夫必须超过一秒才可能会被复用;二来只有连贯的工夫戳是递增的时候才会被复用。 客户端tcp_tw_reuse 复用连贯管用, tcp_tw_recycle有用,然而客户端次要不是承受连贯,用途不大 服务器tcp_tw_recycle 回收连贯管用,tcp_tw_reuse复用有效。为了缩小TIME_WAIT留在服务器,能够在服务器开启KeepAlive,尽量不让服务器被动敞开,而是客户端被动敞开,缩小TIME_WAIT产生. net.ipv4.tcp_fin_timeout = 30 #示意如果套接字由本端要求敞开,这个参数决定了它放弃在FIN-WAIT-2状态的工夫。# FIN_WAIT 超时工夫。 net.core.rmem_max = 16777216 #指定了接管套接字缓冲区大小的最大值(以字节为单位)。 net.core.wmem_max = 16777216 #定义发送窗口的最大大小;对于更大的 BDP 来说,这个大小也应该更大。 net.ipv4.tcp_syncookies = 1 #示意开启SYN Cookies。当呈现SYN期待队列溢出时,启用cookies来解决,可防备大量SYN攻打,默认为0,示意敞开; centos 6 yum update -y system time <code> yum install -y sysstat man wget screen ntp chkconfig ntpd on chkconfig acpid off; chkconfig ip6tables off; chkconfig netfs off; chkconfig postfix off; chkconfig udev-post off chkconfig --list | grep 3:on sed -i 's/"UTC"/"Asia\/Kuala_Lumpur"/' /etc/sysconfig/clock rm -f /etc/localtime ln -s /usr/share/zoneinfo/Asia/Kuala_Lumpur /etc/localtime /usr/sbin/ntpdate 0.centos.pool.ntp.org </code> system optimization <code> echo "fs.file-max = 999999" >> /etc/sysctl.conf echo "vm.swappiness = 0" >> /etc/sysctl.conf echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf echo "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf echo "net.core.rmem_max = 8388608" >> /etc/sysctl.conf echo "net.core.wmem_max = 8388608" >> /etc/sysctl.conf echo "net.ipv4.tcp_max_syn_backlog = 4096" >> /etc/sysctl.conf echo "net.ipv4.ip_local_port_range = 1024 65535" >> /etc/sysctl.conf echo "net.netfilter.nf_conntrack_max= 1966080" >> /etc/sysctl.conf sysctl -p echo -e "*\t soft\t nofile\t 999999" >> /etc/security/limits.conf echo -e "*\t hard\t nofile\t 999999" >> /etc/security/limits.conf </code> firewall <code> /sbin/iptables -F /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -s 10.1.0.0/16 -j ACCEPT /sbin/iptables -A INPUT -s 10.0.1.0/24 -j ACCEPT /sbin/iptables -A INPUT -s 192.168.10.0/24 -j ACCEPT /sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT /sbin/iptables -A INPUT -m limit --limit 5/sec -j LOG --log-prefix "iptables: " --log-level 7 /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT ACCEPT /etc/init.d/iptables save /etc/init.d/iptables restart </code> ssh <code> mkdir ~/.ssh/ vi ~/.ssh/authorized_keys vi /etc/ssh/sshd_config <code> Port 22 ListenAddress 0.0.0.0 Protocol 2 SyslogFacility AUTHPRIV LoginGraceTime 1m StrictModes yes MaxAuthTries 5 MaxSessions 5 PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PermitEmptyPasswords no PasswordAuthentication yes ChallengeResponseAuthentication no UsePAM yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS X11Forwarding no PrintLastLog yes TCPKeepAlive yes MaxStartups 5 UseDNS no Subsystem sftp /usr/libexec/openssh/sftp-server AllowUsers root </code> /etc/init.d/sshd restart restorecon -R -v * restorecon reset /root/.ssh/authorized_keys context unconfined_u:object_r:admin_home_t:s0->unconfined_u:object_r:ssh_home_t:s0 </code>