kernel.unknown_nmi_panic = 0
#该参数的值影响的行为(非屏蔽中断处理)。当这个值为非0,未知的NMI受阻,PANIC出现。这时,内核调试信息显示控制台,则可以减轻系统中的程序挂起。
kernel.sysrq = 1
#如果该文件指定的值为非0,则激活sysctem request key。默认值:0。
kernel.msgmnb = 65536
#所有在消息队列中的消息总和的最大值(msgmnb=64k),默认值:16384
kernel.msgmax = 65536
#指定内核中消息队列中消息的最大值
kernel.shmmax = 68719476736
#共享内存的最大值 以页(4KB)为单位
kernel.shmall = 4294967296
#共享内存的最小值 以页(4KB)为单位
fs.file-max = 1000000
#系统可以打开文件的最大数
fs.inotify.max_user_watches = 10000000
#表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量)
fs.inotify.max_queued_events = 327679
#示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。
vm.swappiness = 10
#虚拟内存使用的积极性,值越小使用的概率越低
net.core.wmem_max = 873200
#最大的TCP数据发送缓冲
net.core.rmem_max = 873200
#最大的TCP数据接收缓冲
net.core.somaxconn = 16384
#用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制。web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制到128,而nginx定义的NGX_LISTEN_BACKLOG默认为511,所以有必要调整这个值。对繁忙的服务器,增加该值有助于网络性能
net.core.netdev_max_backlog = 16384
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目,对重负载服务器而言,该值需要调高一点。默认值1024
#net.nf_conntrack_max = 1000000 #作用同net.netfilter.nf_conntrack_max一样
net.netfilter.nf_conntrack_max = 1000000
#状态跟踪表的最大行数的设定(可能需要执行 modprobe nf_conntrack 安装模块 不然会报错)
net.netfilter.nf_conntrack_tcp_timeout_established = 3600
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.ipv4.ip_local_port_range = 1024 65535
#网络端口使用范围
net.ipv4.ip_forward = 1
#打开路由转发功能
net.ipv4.tcp_syn_retries = 1
#对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间
net.ipv4.tcp_synack_retries = 1
#对于远端的连接请求SYN,内核会发送SYN +ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内核在放弃连接之前所送出的 SYN+ACK 数目。不应该大于255,默认值是5,对应于180秒左右时间。
net.ipv4.tcp_keepalive_time = 600
#TCP发送keepalive探测消息的间隔时间(秒),用于确认TCP连接是否有效。防止两边建立连接但不发送数据的攻击。默认值7200
net.ipv4.tcp_keepalive_probes = 3
#TCP发送keepalive探测消息的间隔时间(秒),用于确认TCP连接是否有效。默认值9
net.ipv4.tcp_keepalive_intvl =15
#探测消息未获得响应时,重发该消息的间隔时间(秒)。默认值为75秒。
net.ipv4.tcp_retries2 = 5
#在丢弃激活(已建立通讯状况)的TCP连接之前﹐需要进行多少次重试。默认值为15,根据RTO的值来决定,相当于13-30分钟(RFC1122规定,必须大于100秒).(这个值根据目前的网络设置,可以适当地改小,我的网络内修改为了5)
net.ipv4.tcp_max_tw_buckets = 5000
#表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。
net.ipv4.tcp_max_syn_backlog = 8192
#表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_syncookies = 1
#表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1
#启用timewait快速回收。推荐NAT环境下的机器不要开启该选项
net.ipv4.tcp_tw_reuse = 1
#开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接
net.ipv4.tcp_fin_timeout = 30
#对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。
net.ipv4.tcp_max_orphans = 262144
#系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。
net.ipv4.tcp_max_syn_backlog = 262144
#记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。
#安全策略######
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.neigh.default.gc_thresh1 = 2048
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh3 = 8192
net.ipv6.conf.all.disable_ipv6 = 1