内核参数列表

Posted xgbing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内核参数列表相关的知识,希望对你有一定的参考价值。

内核参数列表

(环境:Linux localhost 2.6.9-67.ELsmp)

(整理日期:2010-3-10)

一、 调整内核参数的方法:

a) 在运行期间调整

1、可以用 echo “valule” > /proc/sys/内核核文件的方法调整

系统内核的参数,运行的时候是存放在/proc/sys下的各个目录下,每个参数对应一个文件,可以用echo来修改它,但是重启系统后参数将丢失。

2、也可以使用sysctl –w variable=value来设置参数的值

b) 设置到文件

修改/etc/sysctl.conf文件内的内容可以永久的修改参数的值

二、 参数列表:

注:

1、用 sysctl –a命令可以列出当前系统的内核参数的情况

2、当手动修改了/etc/sysctl.conf时,可以使用sysctl -e -p /etc/sysctl.conf

命令使用修改后的参数生效

RPC通道数,当安装oracle等需要RPC时,应调整这两个参数,安装oracle时一般调为128

在系统中的应用使用NFS系统作为存储等的时候,也应将这两个参数调,因为NFS需要使用到RPC.调高这个参数,则会需要更多的进程与之对应,也就需要点系统更多的资源

sunrpc.tcp_slot_table_entries = 16 (128)      

sunrpc.udp_slot_table_entries = 16  (128)

指定RPC可以使用的最大端口号和最小端口与,一般不需要调整这两个参数,但是当有大量的RPC连接时,可能需要调整两个参数。这两个参对性能影响不大,但是对rpc的连接数有影响

sunrpc.max_resvport = 1023

sunrpc.min_resvport = 665

sunrpc.nlm_debug = 0   (注意:这个没有找到具体的含义)

是否打开nfs认证的debug功能,设置1为打开调试

sunrpc.nfsd_debug = 0

是否打开nfs 的debug功能,设置成1为打开调试

sunrpc.nfs_debug = 0

是否打开rpc的debug功能,设置成1为打开调试

sunrpc.rpc_debug = 0

驱动程序在并行端口所声明的端口保持的毫秒数,这只是一个建议值,如果需要的话,驱动程序可以忽略这个值

dev.parport.parport0.devices.lp.timeslice = 200 

指定使用该并行端口的设备,如果有设备连接到这个端口上,则这后面是设备的名字,这里是none说明没有设备驱动程序在使用这个端口

dev.parport.parport0.devices.active = none

连接到并行端口的硬件模式,用逗号分开。这些模式有:

PCSPP :PC样式的注册,TRISTATE:端口是双向的;COMPAY:打印机硬件加速成可用的;EPP:EPP协议硬件加速;ECP:ECP协议硬件加速;DMA:DMA可用

dev.parport.parport0.modes = PCSPP,TRISTATE

并行端口的DMA通道,或者为-1表示没有使用

dev.parport.parport0.dma = -1

并行端口的中断号,或者为-1表示没有使用

dev.parport.parport0.irq = -1

并行端口的基本地址

dev.parport.parport0.base-addr = 888 1912

当外围设备回应设备忙的时候,这个数值是批定重复查询的毫秒数,对于某些设备,调整这个参数可以提高性能,这是基于端口的参数,换句话说,这个参

dev.parport.parport0.spintime = 500

这是默认的上述参数

dev.parport.default.spintime = 500

dev.parport.default.timeslice = 200

以上内容参考下面的地址:http://www.docin.com/p-6631745.html

设置scsi设备日志的级别,当这个值为-1时,则打印出所有的scsi日志,0表示不打印日志 

dev.scsi.logging_level = 0

这里是限制软RAID的最大读写速度和最小读写速度。这里的单位是KB,如这里最大的访问速度是200M,最小访问速度是1M。该设置只对软RAID起作用;

dev.raid.speed_limit_max = 200000

dev.raid.speed_limit_min = 1000

下面这部分是设置CDROM的信息,这里省略其说明;

允许的用户最大的时实时钟中断频率,当运行对时实性要求(如mplayer 需要调整为1024)很高的时候,需要调整这个参数。

dev.rtc.max-user-freq = 64

设置在数据包(UDP)方式下,unix域socket接收缓冲区可以存放的数据包的个数。

net.unix.max_dgram_qlen = 10

net.token-ring.rif_timeout = 600000

#示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip- sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就会把默认的空间填满,那么默认空间时多少?我以redhat为例在内存为64MB的机器上时4096,内存为128MB是 8192,内存为256MB是16376,那末就能在/proc/sys/net/ipv4/ip_conntrack_max里查看、设置

    当实际连接数超过这个值时,系统表现的现象是:从外面ping 这台机器时,频繁出现  Request timed out.而在本机上ping 127.0.0.1 出现Operation not permitted 提示.而ping 外网提示解析 不到主机名.

     这个参数也不宜设置过大,比较影响系统的性能.这个参数在iptables 不启动的情况下不起作用;

net.ipv4.ip_conntrack_max = 65536

表示没有从目的主机收到ACK回应的中继数据包的个数,当达到这个数据个数时,则设定ip_conntrack_tcp_timeout_max_retrans为指定的值。默认值是3

net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3

when enabled, only out of window reset (RST) segments are marked as INVALID; when disabled (default), all out of window packets are marked as INVALID.

net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0

when a connection is picked up from the middle, how many packets are required to pass in each direction after the system may assume to be in sync and window tracking can be 
started (default 3).

net.ipv4.netfilter.ip_conntrack_tcp_loose = 3

当做作为转发时的超时间,默认是300秒,即5分钟,在大并发的服务器上,应该调小这个参数的值

net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300

net.ipv4.netfilter.ip_conntrack_log_invalid = 0

net.ipv4.netfilter.ip_conntrack_generic_timeout = 600

net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30

net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180

net.ipv4.netfilter.ip_conntrack_udp_timeout = 30

net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10

net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120

net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30

net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60

net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000

net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60

net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120

net.ipv4.netfilter.ip_conntrack_buckets = 8192

net.ipv4.netfilter.ip_conntrack_count = 123

net.ipv4.netfilter.ip_conntrack_max = 65536

net.ipv4.conf.eth0.force_igmp_version = 0

net.ipv4.conf.eth0.disable_policy = 0

net.ipv4.conf.eth0.disable_xfrm = 0

net.ipv4.conf.eth0.arp_ignore = 0

net.ipv4.conf.eth0.arp_announce = 0

net.ipv4.conf.eth0.arp_filter = 0

net.ipv4.conf.eth0.tag = 0

当收到包含不合法地址信息的数据包是否让系统记录日志,这个值在下列情况是True 

当conf/all, 接口/log_martians中有一个值是true的时候,否则其值为false

net.ipv4.conf.eth0.log_martians = 0

net.ipv4.conf.eth0.bootp_relay = 0

net.ipv4.conf.eth0.medium_id = 0

如果设置成1的话,则当连接到某个主机有问题时,系统会自动发送一个ARP请求。当系统作为防火墙或路由器时可能有必要将这个参数的值设置成1,但是在作为普通主机上设置这个参数不好了。

net.ipv4.conf.eth0.proxy_arp = 0

net.ipv4.conf.eth0.accept_source_route = 0

在eth0网络接口上是否起用接收源路由信息。默认值是为不起用,如果启用可能会受网络中伪造源址的攻击,因此一般应禁掉该项

net.ipv4.conf.eth0.send_redirects = 1

当对应的机器是作为路由器使用,而且网络中有多个路由器时,应该启用这个选项。接口上的send_redirects只是在以下情况下表示启用:至少confall,接口/ send_redirects其中一个设置成True ,那么接口上的send_redirects就是为True,否则是false
net.ipv4.conf.eth0.rp_filter = 1

是否启用反向路由过滤,当启用了反向路由过滤,可以防止使用非法的IP地址进行地址欺骗。这个可以在一定程度上增强系统的安全性,防止DDOS攻击的。但是在复杂的网络环境中,如果使用了静态路由或rip ,osp等路由协议的话,不建议开启这个功能。这个参数有如下的值可以设置: 2 - 进行全面的反向路径过滤,推荐在边缘路由器上使用。但是要注意,在复杂的网络环境中,如果使用了静态路由或rip、ospf路由协议时,不推荐使用该值。 1 - 是该参数的缺省值,它只对直接连接的网络进行反向路径过滤。 0 - 不进行反向路径过滤。 如果系统中有多个网卡,则这个参才可能在不同的网卡对应的文件中都有。

是否对将要接收的数据包的源进行验证。其值可以是以下的值:

0:表示对数据包的源路径不进行验证确认;

1:严格模式,严格按照RFC3704规定对接收到的数据包针对FIB源路径验证,如果接收到数据包的接口不是数据包回复数据包的最佳路径,则丢弃数据包;

2:松散的验证模式,根据RFC3704规定,对每个进来的数据包,针对FIB表进行验证,如果任何一个接口都不可到达数据包的源地址,则丢弃数据包

这个参数在只有一个网口的主机上是没有意义的,但是需要注意的是,对于像PPP和VPN的连接,因为其有自己的接口,所以最好还是启用这个参数。对于动态路由的网络里,将这个值设置成可能会带来问题。然而,在只一个链路的防火墙/路由器里启用这个参数,可以自动的提供欺骗保护。

net.ipv4.conf.eth0.shared_media = 1

net.ipv4.conf.eth0.secure_redirects = 1

表示仅接收来自网关的ICMP redirect 信息。仅当网络中有多个路由器时可能需要启用这个参数,在一个静态和稳定的网络里,最好这是保持这个参数为禁止状态。当conf/all,接口/secure_redirects 中有一个设置为TRUE时,这个参数就为TRUE,否则这个参数为False;

net.ipv4.conf.eth0.accept_redirects = 1

是否接收ICMP转发信息。默认情况下,当一台机器向远程有机器发送信息时,它通常会把信息先发给它的默认路由器,而当启用这个参数时,那么它可能会接收来远程机器ICMP转发信息,这通知本机再向远程机器发送数据可能有更好的路径可走(也就是可能走另外的路器可能更好),这样本机就可能将发到远程机器的数据包改发另外的路由器。这个性能可能会被黑客服务器利用本机发动对另外的机器进行的攻击,因此,禁掉这个参数的选项是比较好的做法。

在这列情况就启用了这个参数:

Conf/(all,接口)/accept_redirects都设置为true ,且接口下的forwarding为true时;

Conf/all,接口/accept_regirects中有一个是true ,而接口下的forwarding为false时;

 除些以外的情况都表示禁用这个选项

net.ipv4.conf.eth0.mc_forwarding = 0

net.ipv4.conf.eth0.forwarding = 0

以下conf.lo部分的各参数的含义与上面的conf.eth0中的含义相同,只是针对的接口是lo接口的,如果系统中还有多个接口,则各个接口均有类似的参数,含义也相同

net.ipv4.conf.lo.force_igmp_version = 0

net.ipv4.conf.lo.disable_policy = 1

net.ipv4.conf.lo.disable_xfrm = 1

net.ipv4.conf.lo.arp_ignore = 0

net.ipv4.conf.lo.arp_announce = 0

net.ipv4.conf.lo.arp_filter = 0

net.ipv4.conf.lo.tag = 0

net.ipv4.conf.lo.log_martians = 0

net.ipv4.conf.lo.bootp_relay = 0

net.ipv4.conf.lo.medium_id = 0

net.ipv4.conf.lo.proxy_arp = 0

net.ipv4.conf.lo.accept_source_route = 0

net.ipv4.conf.lo.send_redirects = 1

这个参数与net.ipv4.conf.eth0.rp_filter类似

net.ipv4.conf.lo.rp_filter = 1

net.ipv4.conf.lo.shared_media = 1

net.ipv4.conf.lo.secure_redirects = 1

表示仅接收来自网关的ICMP redirect 信息。仅当网络中有多个路由器时可能需要启用这个参数,在一个静态和稳定的网络里,最好这是保持这个参数为禁止状态。当conf/all,接口/secure_redirects 中有一个设置为TRUE时,这个参数就为TRUE,否则这个参数为False;

net.ipv4.conf.lo.accept_redirects = 1

net.ipv4.conf.lo.mc_forwarding = 0

net.ipv4.conf.lo.forwarding = 0

以下的conf.default部分的各个参数的含义与conf.eth0的对应参数的含义是相同的,只是这是系统的默认值,即当系统中有新网络接口添加进来的时候,会用这里设置的值来设置对应的参数的;

net.ipv4.conf.default.force_igmp_version = 0

net.ipv4.conf.default.disable_policy = 0

net.ipv4.conf.default.disable_xfrm = 0

net.ipv4.conf.default.arp_ignore = 0

net.ipv4.conf.default.arp_announce = 0

net.ipv4.conf.default.arp_filter = 0

net.ipv4.conf.default.tag = 0

net.ipv4.conf.default.log_martians = 0

net.ipv4.conf.default.bootp_relay = 0

net.ipv4.conf.default.medium_id = 0

net.ipv4.conf.default.proxy_arp = 0

net.ipv4.conf.default.accept_source_route = 0

net.ipv4.conf.default.send_redirects = 1

这个参数与net.ipv4.conf.eth0.rp_filter类似

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.shared_media = 1

net.ipv4.conf.default.secure_redirects = 1

net.ipv4.conf.default.accept_redirects = 1

net.ipv4.conf.default.mc_forwarding = 0

net.ipv4.conf.default.forwarding = 0

以下conf.all部分的值与conf.eth0中的值类似的,这个部分中设置的值是对所有的接口都起作用的,而且对conf.default也是起作用的,也即修改了这里的值,则conf.defaul下对应的值也会被修改

net.ipv4.conf.all.force_igmp_version = 0

net.ipv4.conf.all.disable_policy = 0

net.ipv4.conf.all.disable_xfrm = 0

net.ipv4.conf.all.arp_ignore = 0

net.ipv4.conf.all.arp_announce = 0

net.ipv4.conf.all.arp_filter = 0

net.ipv4.conf.all.tag = 0

net.ipv4.conf.all.log_martians = 0

net.ipv4.conf.all.bootp_relay = 0

net.ipv4.conf.all.medium_id = 0

net.ipv4.conf.all.proxy_arp = 0

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.all.send_redirects = 1

这个参数与net.ipv4.conf.eth0.rp_filter类似

net.ipv4.conf.all.rp_filter = 0

net.ipv4.conf.all.shared_media = 1

net.ipv4.conf.all.secure_redirects = 1

net.ipv4.conf.all.accept_redirects = 1

net.ipv4.conf.all.mc_forwarding = 0

net.ipv4.conf.all.forwarding = 0

禁止在该参数设置的微秒数内改变对象的ARP地址,即在ARP表中IP和MAC地址的对应关系的变化的最小时间应大这个参数设置的微秒值,如果在局域网有ARP欺骗的话,增大这个值可以减少这种攻击

net.ipv4.neigh.eth0.locktime = 99

net.ipv4.neigh.eth0.proxy_delay = 79

net.ipv4.neigh.eth0.anycast_delay = 99

net.ipv4.neigh.eth0.proxy_qlen = 64

net.ipv4.neigh.eth0.unres_qlen = 3

net.ipv4.neigh.eth0.gc_stale_time = 60

net.ipv4.neigh.eth0.delay_first_probe_time = 5

net.ipv4.neigh.eth0.base_reachable_time = 30

net.ipv4.neigh.eth0.retrans_time = 99

net.ipv4.neigh.eth0.app_solicit = 0

net.ipv4.neigh.eth0.ucast_solicit = 3

net.ipv4.neigh.eth0.mcast_solicit = 3

net.ipv4.neigh.lo.locktime = 99

net.ipv4.neigh.lo.proxy_delay = 79

net.ipv4.neigh.lo.anycast_delay = 99

net.ipv4.neigh.lo.proxy_qlen = 64

net.ipv4.neigh.lo.unres_qlen = 3

net.ipv4.neigh.lo.gc_stale_time = 60

net.ipv4.neigh.lo.delay_first_probe_time = 5

net.ipv4.neigh.lo.base_reachable_time = 30

net.ipv4.neigh.lo.retrans_time = 99

net.ipv4.neigh.lo.app_solicit = 0

net.ipv4.neigh.lo.ucast_solicit = 3

net.ipv4.neigh.lo.mcast_solicit = 3

net.ipv4.neigh.default.gc_thresh3 = 1024

net.ipv4.neigh.default.gc_thresh2 = 512

net.ipv4.neigh.default.gc_thresh1 = 128

net.ipv4.neigh.default.gc_interval = 30

net.ipv4.neigh.default.locktime = 99

net.ipv4.neigh.default.proxy_delay = 79

net.ipv4.neigh.default.anycast_delay = 99

net.ipv4.neigh.default.proxy_qlen = 64

net.ipv4.neigh.default.unres_qlen = 3

net.ipv4.neigh.default.gc_stale_time = 60

net.ipv4.neigh.default.delay_first_probe_time = 5

net.ipv4.neigh.default.base_reachable_time = 30

net.ipv4.neigh.default.retrans_time = 99

net.ipv4.neigh.default.app_solicit = 0

net.ipv4.neigh.default.ucast_solicit = 3

net.ipv4.neigh.default.mcast_solicit = 3

net.ipv4.tcp_slow_start_after_idle = 1

net.ipv4.tcp_workaround_signed_windows = 1

net.ipv4.tcp_bic_beta = 819

net.ipv4.tcp_tso_win_divisor = 8

net.ipv4.tcp_moderate_rcvbuf = 1

net.ipv4.tcp_bic_low_window = 14

net.ipv4.tcp_bic_fast_convergence = 1

net.ipv4.tcp_bic = 1

net.ipv4.tcp_vegas_gamma = 2

net.ipv4.tcp_vegas_beta = 6

net.ipv4.tcp_vegas_alpha = 2

net.ipv4.tcp_vegas_cong_avoid = 0

net.ipv4.tcp_westwood = 0

net.ipv4.tcp_no_metrics_save = 0

net.ipv4.ipfrag_secret_interval = 600

net.ipv4.tcp_low_latency = 0

net.ipv4.tcp_frto = 0

表示是否允许系统将TIME-WAIT的Soctets的应用于新的TCP连接。如果将这个值设置成1表示可以将TIME-WAIT的连接重新应用于新的TCP连接,这在大量的并发连接服务中可以提高系统回收TIME-WAIT的速度,提高系统性能。默认这个值是0。

net.ipv4.tcp_tw_reuse = 0

表示设置何种类型的ICMP发包的速率被限制了。这个值的算法是由每种类型对应的开限制(1)和关限制(0)组成的一个二制的数,然后转换成十进制组成的。如默认值6168的含义是:

ICMP的类型有IHGFEDCBA9876543210共十九种,其定义可以查看include/linux/icmp.h文件,而6168转成二进制是0000001100000011000 ,则表明是对3、4、 B、C这几个序号所对应的ICMP类型的信息的速率进行限制

net.ipv4.icmp_ratemask = 6168

设定向指定的目标发指定类型的ICMP数据包的速率,当值是0时表示不限制,否则设置的值以微秒为单位,这个值与上面的参数配合使用

net.ipv4.icmp_ratelimit = 1000

net.ipv4.tcp_adv_win_scale = 2

net.ipv4.tcp_app_win = 31

设置tcp接收窗口大小的最小值,默认值和最大值,单位是字节,在大流量的网站服务器上,应调大这三个数字,这个设置在设置了自动调整TCP时起作用,

net.ipv4.tcp_rmem = 4096 87380 174760

设置tcp传输窗口大小的最小值,默认值和最大值,单位是字节,在大流量的网站服务器上,应调大这三个数字,这个设置在设置了自动调整TCP时起作用,

net.ipv4.tcp_wmem = 4096 16384 131072

 

net.ipv4.tcp_mem = 786432 1048576 1572864

net.ipv4.tcp_dsack = 1

net.ipv4.tcp_ecn = 0

net.ipv4.tcp_reordering = 3

net.ipv4.tcp_fack = 1

net.ipv4.tcp_orphan_retries = 0

net.ipv4.inet_peer_gc_maxtime = 120

net.ipv4.inet_peer_gc_mintime = 10

net.ipv4.inet_peer_maxttl = 600

net.ipv4.inet_peer_minttl = 120

net.ipv4.inet_peer_threshold = 65664

net.ipv4.igmp_max_msf = 10

net.ipv4.igmp_max_memberships = 20

net.ipv4.route.secret_interval = 600

net.ipv4.route.min_adv_mss = 256

net.ipv4.route.min_pmtu = 552

net.ipv4.route.mtu_expires = 600

net.ipv4.route.gc_elasticity = 8

net.ipv4.route.error_burst = 5000

net.ipv4.route.error_cost = 1000

net.ipv4.route.redirect_silence = 20480

net.ipv4.route.redirect_number = 9

net.ipv4.route.redirect_load = 20

net.ipv4.route.gc_interval = 60

net.ipv4.route.gc_timeout = 300

net.ipv4.route.gc_min_interval = 0

net.ipv4.route.max_size = 2097152

net.ipv4.route.gc_thresh = 131072

net.ipv4.route.max_delay = 10

net.ipv4.route.min_delay = 2

net.ipv4.icmp_errors_use_inbound_ifaddr = 0

net.ipv4.icmp_ignore_bogus_error_responses = 0

设置是否响应icmp echo广播请求,设置值应为布尔值,0表示响应icmp echo广播请求,1表示忽略。系统默认这个值是0,即表示响应icmp协议的广播请求。这样在其它的机器上ping 这个机器所在的网络的广播地址时,这台机器会有回应。这个值设置成1,关闭对广播请求的问应,可以防止icmp风暴,防止网络阻塞。同时,也可以在一定程度上防止对机器进行的嗅探,更强系统的安全性。注意:windows系统对icmp广播请求是不进行响应的。 

net.ipv4.icmp_echo_ignore_broadcasts = 0

设置是否禁止响应icmp,也就是是否禁ping 。默认值是0,表示不禁ping,当设置成1时禁止所有的机器对这台机器进行ping。这在一定程序可以增强系统的安全性,可以在一定程度上减少对主机的扫描,设置这个值以后,从其它的机器上ping过去,提示Request time out。

net.ipv4.icmp_echo_ignore_all = 0

#表示服务器主动连接其它服务可以使用的端口号范围。默认是下面这个范围,当服务器上有nginx, web,squid 等需要转发请求或大量打开其它服务端口的服务时,需要调整这个值。可以设置成net.ipv4.ip_local_port_range = 1024  65000

net.ipv4.ip_local_port_range = 32768 61000

记录的那些尚未收到客户端确认信息的连接请求的最大值(也就是服务器可以容纳的SYN状态连接队列的长度)。对于有128M 内存的系统而言,缺省值是1024,小内存的系统则是128。对于大并发量和突发量的服务器,应增加这个值的大小,以让服务器有足够的队列可以响应足够多的客户端的连接请求

net.ipv4.tcp_max_syn_backlog = 1024(262144)

net.ipv4.tcp_rfc1337 = 0

net.ipv4.tcp_stdurg = 0

net.ipv4.tcp_abort_on_overflow = 0

表示系统是否启用TIME_WAIT快速收回。当web等服务器上存在大量的TIME_WAIT连接时,可以将这个值设置成1,让系统快速收回那些TIME_WAIT的连接,减少系统资源的占用,提高系统的性能等.当这个值是非曲直0的时候,表示系统关闭了快还收回的技术

net.ipv4.tcp_tw_recycle = 0

设置这个值为1表示,开启SYN Cookies,当出现SYN 等待队列溢出时,启用cookies 来处理。这个防止少量的SYN 攻击。关于SYN Cookies的原理及其说明可以参看“SYN Cookie原理及其在Linux内核中的实现”文章

net.ipv4.tcp_syncookies = 1

在一个tcp会话过程中,在会话结束时,A首先向B发送一个fin包,在获得B的ack确认包后,A就进入FIN WAIT2状态等待B的fin包然后给B发ack确认包。这个参数就是用来设置A进入FIN WAIT2状态等待对方fin包的超时时间。如果时间到了仍未收到对方的fin包就主动释放该会话。参数值为整数,单位为秒,缺省为60秒。在大量并发连接的系统中,而且网络条件比较好的网络中,可以适当的将这个值设置的小一点,以提高系统的性能。

net.ipv4.tcp_fin_timeout = 60

这是指一个活动的连接失败后,系统在丢弃它之前,发送的重新连接的次数。这个值会影响一个活动连接的超时时间,

net.ipv4.tcp_retries2 = 15

这是一个TCP连接失败时,在系统丢弃这个连接之前,系统重发TCP连接的次数,在比较的好网络情况可以调小这个值,而对于网络的情况下,应增加这个值;默认值是3

net.ipv4.tcp_retries1 = 3

net.ipv4.tcp_keepalive_intvl = 75

net.ipv4.tcp_keepalive_probes = 9

net.ipv4.tcp_keepalive_time = 7200

在内核丢弃数据包之前,其保存在内存里的时间秒数,通常30秒是一个比较合适的数值,但是如果系统受到伪装的攻击时,可以适当调小这个数值,起到防攻击的目的,同时对连接也不会有什么影响;

net.ipv4.ipfrag_time = 30

该参数通常用于使用拨号连接的情况,可以使系统动能够立即改变ip包的源地址为该ip地址,同时中断原有的tcp对话而用新地址重新发出一个syn请求包,开始新的tcp对话。在使用ip欺骗时,该参数可以立即改变伪装地址为新的ip地址。该参数的参数值可以是: 1:启用该功能 2:使用冗余模式启用该功能 0:禁止该功能

net.ipv4.ip_dynaddr = 0

这个值与.ipfrag_high_thresh类似,是指系统分配的用于数据包封装的内存的最小值

net.ipv4.ipfrag_low_thresh = 196608

这是系统分配的用户IP帧进行组装的最大的内存大小,其值是字节。这个值不宜过大或宜小,如果这个值过大将会占用过大的内存空间,而较小,则系统可能会丢弃有用的数据包。

net.ipv4.ipfrag_high_thresh = 262144

#表示系统中可以同时保持TIME_WAIT套接字的最大数据,如果超过这个数字,TIME_WAIT套接字将会立刻清除并打印警告信息。默认值是180000,而对于像APACHE,NGINX 等WEB服务器,适当调小这个数字,可以提高系统的性能,并可以防止系统被大量的TIME_WAIT拖死。一般Apache和nginx这个值设置成5000到6000即可;

net.ipv4.tcp_max_tw_buckets = 180000

系统中最多有多少个TCP 套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS 攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。

net.ipv4.tcp_max_orphans = 262144

为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK 包的数量。也就是当服务器发送一个SYN+ACK包给客户端,而没有收到客户端发送的+ACK时,服务器端重复发送SYN+ACK数据包的次数。将这个值设置小一点在一定程度上可以防止SYN攻击,同时在大量并发的服务器上,可以减少系统资源的消耗,及时收回系统资源,提高系统的性能。但是,在网络性能很差,要求提高网络连接的稳定性,应该提高这个数值。每个孤儿连接会占用64K的不可交换的内存

net.ipv4.tcp_synack_retries = 5 (1)

在内核放弃建立连接之前发送SYN 包的数量。这个参数与上面的参数是类似的,是由服务器主动连接其它机器时,如果机器第一次发了一个SYN,而没有收到回应时,服务器重发SYN的次数。对一个低速网络或被连接的服务器的负载很重,而要求连接很稳定的时候,应该增加这个值,否应减小这个数值。

net.ipv4.tcp_syn_retries = 5  (1)

net.ipv4.ip_nonlocal_bind = 0

net.ipv4.ip_no_pmtu_disc = 0

net.ipv4.ip_autoconfig = 0

设置从本机发出的ip包的生存时间,参数值为整数,范围为0~128,缺省值为64(在不同的liinux版本上这个值不一样的)。在windows系统中,ip包的生存时间通常为128。如果你的系统经常得到“Time to live exceeded”的icmp回应,可以适当增大该参数的值,但是也不能过大,因为如果你的路由的环路的话,就会增加系统报错的时间。在数据包进过路由器或防火墙后,这个值可能会被修改掉的。 
net.ipv4.ip_default_ttl = 64

可以通过该参数来启用包转发功能,从而使系统充当路由器。参数值为1时启用ip转发,为0时禁止ip转发。注意,我们可以在单网卡或双网卡的主机上实现ip转发。

net.ipv4.ip_forward = 0

是否启用接口之间的数据包转发。如果机器作为路由器或网关使用时,应该启用这个数。0表示禁用,1表示启用。这个参数有一些特殊,如果它的值改变了,那么其它参数设置的值都恢复到了默认值了。

net.ipv4.tcp_retrans_collapse = 1

net.ipv4.tcp_sack = 1

设置tcp/ip会话的滑动窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。Tcp/ip通常使用的窗口最大可达到65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力。 
net.ipv4.tcp_window_scaling = 1

时间戳可以避免序列号的卷绕。一个1Gbps 的链路肯定会遇到以前用过的序列号。时间

戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。所以在一个高速网络里应该打开这个选项,而一个百兆和十兆网络里可以关闭这个选项

net.ipv4.tcp_timestamps = 1

web 应用中listen 函数的backlog 默认会给我们内核参数的net.core.somaxconn 限制到

128,而nginx 定义的NGX_LISTEN_BACKLOG 默认为511,所以有必要调整这个值。

 对于高并发和高突发连接的服务器,都应该调高这个参数值.当这个值过低时,表现的现象是服务器的负载不是很高,但是客户端连接超时,或者重发。这个值在/proc下的路径是:

/proc/sys/net/core/somaxconn

net.core.somaxconn = 128   (262144)

net.core.divert_version = 0.46

net.core.optmem_max = 10240

net.core.message_burst = 10

net.core.message_cost = 5

net.core.mod_cong = 290

net.core.lo_cong = 100

net.core.no_cong = 20

net.core.no_cong_thresh = 10

每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包

的最大数目。这个是当系统的突发值很高,或者并发值很高时,调高这个值的大小就很好处,可以让系统来不及处理的请求先放在除列中。在nginx 中这个值可以调整为262144

net.core.netdev_max_backlog = 300  (262144)

net.core.dev_weight = 64

默认TCP接收窗口大小,单位是字节,在访问量比较大的服务器上,应该这个值调大

net.core.rmem_default = 110592

默认TCP传输窗口大小,单位是字节,在访问量比较大的服务器上,应该这个值调大

 

net.core.wmem_default = 110592

接收TCP数据的最大窗口大小,单位是字节,在访问量比较大的服务器上,应将这个值调大,调大这个数字可以提高网络的接收能力,减少网络流量,流量大的服务器这个值可以调整到几十M

net.core.rmem_max = 131071

传输TCP数据的最大窗口大小,单位是字节,在访问量比较大的服务器上,应将这个值调大,调大这个数字可以提高网络的接收能力,减少网络流量,流量大的服务器这个值可以调整到几十M

net.core.wmem_max = 131071

vm.drop_caches = 0

vm.inactive_percent = 0

vm.pagecache = 100

vm.percpu_pagelist_fraction = 0

vm.max_queue_depth = 0

vm.oom-kill = 1

vm.legacy_va_layout = 0

vm.vfs_cache_pressure = 100

vm.block_dump = 0

vm.laptop_mode = 0

vm.max_map_count = 65536

vm.min_free_kbytes = 3797

vm.lower_zone_protection = 0

vm.hugetlb_shm_group = 0

vm.nr_hugepages = 0

vm.swappiness = 60

vm.nr_pdflush_threads = 2

vm.dirty_expire_centisecs = 3000

vm.dirty_writeback_centisecs = 500

vm.dirty_ratio = 40

vm.dirty_background_ratio = 10

vm.page-cluster = 3

vm.overcommit_ratio = 50

vm.panic_on_oom = 0

vm.overcommit_memory = 0

kernel.panic_on_unrecovered_nmi = 0

kernel.wake_balance = 1

kernel.suid_dumpable = 0

kernel.unknown_nmi_panic = 0

kernel.ngroups_max = 65536

kernel.printk_ratelimit_burst = 10

kernel.printk_ratelimit = 5

kernel.panic_on_oops = 1

kernel.pid_max = 32768

kernel.sercons_esc = -1

kernel.overflowgid = 65534

kernel.overflowuid = 65534

kernel.pty.nr = 3

kernel.pty.max = 4096

kernel.random.uuid = f0d99dde-abce-4d4e-a445-800d7b6d0a6f

kernel.random.boot_id = f83b41b0-a1f3-45b9-aece-4cf794d9fc78

kernel.random.write_wakeup_threshold = 128

kernel.random.read_wakeup_threshold = 64

kernel.random.entropy_avail = 3712

kernel.random.poolsize = 512

kernel.threads-max = 65534

kernel.cad_pid = 1

kernel.sysrq = 0

kernel.sem = 250 32000 32 128

kernel.msgmnb = 16384

kernel.msgmni = 16

kernel.msgmax = 8192

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.shmmax = 33554432

kernel.acct = 4 2 30

kernel.hotplug = /sbin/hotplug

kernel.modprobe = /sbin/modprobe

kernel.printk = 6 4 1 7

kernel.ctrl-alt-del = 0

kernel.real-root-dev = 0

kernel.cap-bound = -257

kernel.tainted = 0

kernel.core_pattern = core

kernel.core_uses_pid = 1

kernel.vdso = 0

kernel.print-fatal-signals = 0

kernel.exec-shield-randomize = 1

kernel.exec-shield = 1

kernel.panic = 0

kernel.domainname = (none)

kernel.hostname = ceshi.bdton.com

kernel.version = #1 SMP Mon Nov 19 22:04:23 CET 2007

kernel.osrelease = 2.6.9-67.ELsmp

kernel.ostype = Linux

fs.nfs.nlm_tcpport = 0

fs.nfs.nlm_udpport = 0

fs.nfs.nlm_timeout = 10

fs.nfs.nlm_grace_period = 0

fs.mqueue.msgsize_max = 8192

fs.mqueue.msg_max = 10

fs.mqueue.queues_max = 256

fs.quota.syncs = 33

fs.quota.free_dquots = 0

fs.quota.allocated_dquots = 0

fs.quota.cache_hits = 0

fs.quota.writes = 0

fs.quota.reads = 0

fs.quota.drops = 0

fs.quota.lookups = 0

fs.aio-max-nr = 65536

fs.aio-nr = 0

fs.lease-break-time = 45

fs.dir-notify-enable = 1

fs.leases-enable = 1

fs.overflowgid = 65534

fs.overflowuid = 65534

fs.dentry-state = 40139 33165 45 0 0 0

fs.file-max = 206125

fs.file-nr = 2415 0 206125

fs.inode-state = 52347 12601 0 0 0 0 0

fs.inode-nr = 52347 12601

fs.binfmt_misc.status = enabled

以上是关于内核参数列表的主要内容,如果未能解决你的问题,请参考以下文章

内核参数列表

ipvsadmin工具命令详解

Linux内核的Linux参数sysctl列表及其解释[关闭]

ubuntu从图形用户界面切换到命令提示符界面

ubuntu从图形用户界面切换到命令提示符界面

swappiness参数设置与内存交换