Security options安全选项这里的选项不明白的建议不要选,否则有可能弄巧成拙.Enable access key retention supportCONFIG_KEYS在内核中保留认证令牌(authentication token)和访问密钥(access key).eCryptfs(CONFIG_ECRYPT_FS)依赖于它.不确定的选"N". Enable register of persistent per-UID keyrings 启用持久性每UID密钥环的注册Large payload keys 大负载密钥TRUSTED KEYS CONFIG_TRUSTED_KEYS "TRUSTED KEY"的意思是由TPM(可信赖平台模块)用RSA算法封装的一对随机数.开启此项后,内核将可以为创建/封装/解封"TRUSTED KEY"提供支持.如果引导PCR(平台配置寄存器)和各种条件都匹配,那么TPM只解封密钥.用户空间永远只能看到加密过后的二进制内容.不确定的选"N". ENCRYPTED KEYS CONFIG_ENCRYPTED_KEYS "ENCRYPTED KEY"的意思是由内核封装的一对随机数,该对随机数可以用一个"主密钥"使用对称加密算法进行加密和解密.开启此项后,内核将可以为创建/加密/解密"ENCRYPTED KEY"提供支持."主密钥"既可以是"TRUSTED KEY"也可以是"user-key"(用户选择的密钥).用户空间永远只能看到/存储加密过后的二进制内容.不确定的选"N". Enable the /proc/keys file by which keys may be viewed CONFIG_KEYS_DEBUG_PROC_KEYS 开启"/proc/keys"文件支持,该文件中保存了系统上所有可见的密钥.注意,LSM(Linux安全模块)安全检查仍然是必须的.不确定的选"N". Diffie-Hellman operations on retained key Diffie-Hellman对保留密钥的操作Restrict unprivileged access to the kernel syslogCONFIG_SECURITY_DMESG_RESTRICT禁止非特权用户访问内核日志(dmesg),相当于"echo 1 > /proc/sys/kernel/dmesg_restrict".不确定的选"N". Enable different security modelsCONFIG_SECURITY允许内核选择不同的LSM(Linux安全模块),如果未选中则内核将使用默认的安全模块 ("Default security module").不确定的选"N". Enable the securityfs filesystemCONFIG_SECURITYFSsecurityfs安全文件系统支持.当前仅被TPM bios字符设备驱动以及IMA(完整性提供者)使用. 它与SELinux或SMACK之类没有关系.不确定的选"N". Socket and Networking Security HooksCONFIG_SECURITY_NETWORK允许安全模块通过Security Hook对Socket与Networking进行访问控制.不确定的选"N". Remove the kernel mapping in user mode在用户模式下删除内核映射 XFRM (IPSec) Networking Security Hooks CONFIG_SECURITY_NETWORK_XFRM 为XFRM(IPSec)启用安全Hook.这样安全模块可以通过这些hook,根据IPSec策略标签, 实现针对每个网络包的访问控制.非IPSec通信则被当做"无标签"处理, 仅允许那些被明确批准可以不使用策略标签的socket才能不通过IPSec进行通信.不确定的选"N". Security hooks for pathname based access controlCONFIG_SECURITY_PATH此安全钩子程序可以让各种安全模块实现基于路径的访问控制.不确定的选"N". Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)CONFIG_INTEL_TXT支持使用可信引导(Trusted Boot)技术引导内核(需要使用tboot模块).这将使用英特尔TXT(可信任执行技术)来引导内核. 在不支持TXT的平台上开启此项没有效果.详见"Documentation/intel_txt.txt"文档.不确定的选"N". Low address space for LSM to protect from user allocationCONFIG_LSM_MMAP_MIN_ADDR禁止用户空间分配的低位内存范围.禁止用户写入低位内存有助于降低内核NULL指针 漏洞造成的破坏(参见CONFIG_DEFAULT_MMAP_MIN_ADDR选项).建议保持默认值"65536". Harden memory copies between kernel and userspace硬化内核和用户空间之间的内存副本 Harden common str/mem functions against buffer overflows硬化常见的str / mem函数以防止缓冲区溢出 NSA SELinux SupportCONFIG_SECURITY_SELINUXSELinux(安全增强Linux)是美国国家安全局(NSA)开发的Linux安全模块, 它拥有一个灵活而强制性的访问控制结构,可防御未知攻击,相当于B1级的军事安全性能 (比微软所谓的C2等高得多).应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难, 对机密性和完整性有很高要求的信息,亦可提供很高的安全保障.但另一方面, 如果不深入了解SELinux知识而盲目使用,则会弄巧成拙.不确定的选"N". NSA SELinux boot parameter CONFIG_SECURITY_SELINUX_BOOTPARAM 添加"selinux"内核引导参数.以允许在引导时使用'selinux=0'禁用SELinux或'selinux=1'启用SELinux. NSA SELinux boot parameter default value CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE "selinux"内核引导参数的默认值. NSA SELinux runtime disable CONFIG_SECURITY_SELINUX_DISABLE 允许在运行时禁用SELinux.建议选"N". NSA SELinux Development Support CONFIG_SECURITY_SELINUX_DEVELOP SELinux开发支持.开启此项后,除非明确使用"enforcing=1"引导参数让内核以"强制模式"运行, 否则内核将以"许可模式"运行(记录所有事件,同时允许所有操作). 主要用于测试SELinux以及策略开发.此外,开启此项后, 还可以在运行时通过"/selinux/enforce"让内核在"强制模式"与"许可模式"之间切换. NSA SELinux AVC Statistics CONFIG_SECURITY_SELINUX_AVC_STATS 搜集访问向量缓存(access vector cache)的统计信息并在/selinux/avc/cache_stats中显示出来. 这些信息可以用avcstat之类的工具查看. NSA SELinux checkreqprot default value CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE 内核引导参数"checkreqprot"的默认值.设为"0"表示默认检查内核要求执行的保护策略, 设为"1"表示默认检查应用程序要求执行的保护策略. 此值还可以在运行时通过/selinux/checkreqprot修改.不确定的选"1". NSA SELinux maximum supported policy format version CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX 将支持的策略格式的最高版本设置为一个特定的数值. 该数值将通过/selinux/policyvers向用户空间报告, 并在加载策略时被使用.不确定的选"N". NSA SELinux maximum supported policy format version value 支持策略格式的最高版本的数值.可以通过"checkpolicy -V" 命令检查当前工具链支持的版本数值. Simplified Mandatory Access Control Kernel SupportCONFIG_SECURITY_SMACKSmack(简化的强制访问控制内核)内核安全模块.Smack是一种简单而有效的强制访问控制机制, 它的简单体现在安全策略的配置很简单,它的有效体现在完全使用LSM作为其控制手段. 不确定的选"N". TOMOYO Linux SupportCONFIG_SECURITY_TOMOYOTOMOYO Linux是日本NTT数据公司开发的一种Linux安全模块.不确定的选"N". AppArmor supportCONFIG_SECURITY_APPARMORAppArmor是来自Novell的一种Linux安全模块.不确定的选"N". Pin load of kernel files (modules, fw, etc) to one filesystem将内核文件（模块，fw等）加载到一个文件系统 Yama supportCONFIG_SECURITY_YAMAYama(阎王)是3.4版内核新引入的一种Linux安全模块.不确定的选"N". Integrity subsystem完整性子系统Digital signature verification using multiple keyrings CONFIG_INTEGRITY_SIGNATURE 允许使用多个密钥环(keyring)进行数字签名验证,也就允许为多个不同的使用场合 (evm,ima,module)分别使用不同的keyring.看不懂的选"N".Enables integrity auditing support 启用完整性审计支持 Enable asymmetric keys support CONFIG_INTEGRITY_ASYMMETRIC_KEYS 允许使用非对称密钥进行数字签名验证.Integrity Measurement Architecture(IMA) CONFIG_IMAIMA(完整性度量架构)是一个在TCG(可信计算工作组)技术规范之上提出的完整性检查技术. IMA维护着一个系统关键文件的哈希值列表,从而可以检测这些关键文件是否被篡改. 如果系统上有TPM安全芯片,那么IMA还会在TPM芯片内存储哈希值的集合. 这样的TPM芯片可以提供给第三方,用于检查系统上的关键文件是否被篡改.不确定的选"N". Enables auditing support CONFIG_IMA_AUDIT 添加"ima_audit"内核引导参数支持.当设为"ima_audit=1"时,将允许显示完整性审计信息. Default template 默认模板 Default integrity hash algorithm 默认完整性哈希算法 Enable multiple writes to the IMA policy 启用对IMA策略的多次写入 Enable reading back the current IMA policy 启用回读当前的IMA策略 Appraise integrity measurements CONFIG_IMA_APPRAISE 本地完整性鉴定支持.这样就可以在加载文件时检验它的完整性.这要求系统配置EVM支持.不确定的选"N". EVM supportCONFIG_EVMEVM通过保护文件的安全扩展属性来对抗完整性攻击. EVM HMAC version CONFIG_EVM_HMAC_VERSION 支持的EVM HMAC版本:"1"表示原始版本,默认值"2"表示添加了文件系统UUID支持的改进版本. Default security module内核默认的安全模块.[提示]"Unix Discretionary Access Controls"是经典的UNIX基于目录的访问控制安全模型.如果没有开启任何安全模块,这将是默认值.
Networking support网络支持Networking options网络选项 Packet socket CONFIG_PACKET 链路层PF_PACKET套接字支持.可以让应用程序(比如:抓包工具tcpdump, DHCP客户端dhclient)直接与网络设备通讯,而无需使用内核中的其它中介协议.不确定的选"Y"或"M". Packet: sockets monitoring interface CONFIG_PACKET_DIAG PF_PACKET套接字监控接口,ss这样的诊断工具需要它. Unix domain sockets CONFIG_UNIX Unix domain sockets 支持.许多程序都使用它在操作系统内部进行进程间通信(IPC), 比如: X Window, syslog, udev 等等.选"Y",除非你确实知道自己在做什么. UNIX: socket monitoring interface CONFIG_UNIX_DIAG UNIX套接字监控接口,ss这样的工具需要它. Transformation user configuration interface CONFIG_XFRM_USER 为IPsec相关的工具提供Transformation(XFRM)用户配置接口 Transformation sub policy support CONFIG_XFRM_SUB_POLICY XFRM子策略支持,不确定的选"N". Transformation migrate database CONFIG_XFRM_MIGRATE 用于动态的更新 IPsec SA(security association) 的定位器(locator). 这个特性对于手机这类移动设备来讲至关重要, 因为它需要在不同的基站之间迁移.不确定的选"N". Transformation statistics CONFIG_XFRM_STATISTICS 转换统计,这不是SNMP/MIB规范的内容.用于调试目的.不确定的选"N". PF_KEY sockets CONFIG_NET_KEY PF_KEYv2 套接字支持(与KAME兼容).PF_KEY协议族主要用来处理SA(安全关联), 对SADB(SA数据库)进行管理,主要用在IPsec协议中.PF_KEY_v2的编程API在RFC2367中定义. PF_KEY MIGRATE CONFIG_NET_KEY_MIGRATE 向PF_KEYv2套接字中添加一个 PF_KEY MIGRATE 消息. 、 PF_KEY MIGRATE 消息可用于动态的更新 IPsec SA(security association) 的定位器(locator). 这个特性对于手机这类移动设备来讲至关重要,因为它需要在不同的基站之间迁移.不确定的选"N". SMC socket protocol family SMC套接字协议族 TCP/IP networking CONFIG_INET TCP/IP协议,必选! IP: multicasting CONFIG_IP_MULTICAST IP组播(IP multicasting)支持.指的是一个发送者向一组特定的接收者发送数据, 但只需发送一份数据副本.实际应用的场合很少,MBONE算是其中之一, 与RTP等音视频协议相结合也算一种.不确定的选"N". IP: advanced router CONFIG_IP_ADVANCED_ROUTER 高级路由支持,需要开启内核的IP转发功能(echo 1 > /proc/sys/net/ipv4/ip_forward)才能正常工作. 如果这个Linux系统用作专业的路由器就选上,选上之后还需要按需选择其下的子项.一般的主机不需要这个. FIB TRIE statistics CONFIG_IP_FIB_TRIE_STATS 主要用于测试TRIE性能 IP: policy routing CONFIG_IP_MULTIPLE_TABLES 策略路由 IP: equal cost multipath CONFIG_IP_ROUTE_MULTIPATH 用于基于目的地址的负载均衡 IP: verbose route monitoring CONFIG_IP_ROUTE_VERBOSE 显示冗余的路由监控信息 IP: kernel level autoconfiguration CONFIG_IP_PNP 在内核启动时自动配置网卡的ip地址/路由表,配置信息来自于以下途径:内核引导参数, 自举协议(BOOTP),反向地址转换协议(RARP),动态主机配置协议(DHCP).通常, 需要从网络启动的无盘工作站才需要这个东西(此时还需要开启CONFIG_ROOT_NFS), 一般的发行版都通过启动脚本(dhcpcd/dhclient/ifconfig)配置网络.不确定的选"N". IP: DHCP support CONFIG_IP_PNP_DHCP DHCP协议支持 IP: BOOTP support CONFIG_IP_PNP_BOOTP BOOTP协议支持 IP: RARP support CONFIG_IP_PNP_RARP RARP协议支持 IP: tunneling CONFIG_NET_IPIP IP隧道,主要目的是为了在TCP/IP网络中传输其他协议的数据包,当然也包括IP数据包(例如用于实现VPN). IP: GRE demultiplexer CONFIG_NET_IPGRE_DEMUX GRE demultiplexer 支持.被CONFIG_NET_IPGRE和CONFIG_PPTP所依赖. IP: GRE tunnels over IP CONFIG_NET_IPGRE 基于IP的通用路由封装(Generic Routing Encapsulation)隧道支持. 该驱动主要用于对端是Cisco路由器的场合,因为Cisco的路由器特别偏好GRE隧道 (而不是CONFIG_NET_IPIP),并且GRE还允许通过隧道对组播进行再分发. IP: broadcast GRE over IP CONFIG_NET_IPGRE_BROADCAST GRE/IP的一种应用是构建一个广播WAN(Wide Area Network), 而其看上去却很像一个跑在互联网上的LAN(Local Area Network). 如果你想要创建这样的网络,那么就选"Y"(还要加上CONFIG_IP_MROUTE). IP: multicast routing CONFIG_IP_MROUTE 组播路由支持.实际应用的场合很少,MBONE算是其中之一,不确定的选"N". IP: multicast policy routing CONFIG_IP_MROUTE_MULTIPLE_TABLES 通常,组播路由器上会运行一个单独的用户态守护进程,根据源地址和目的地址来处理数据包. 开启此项后,将能同时考虑数据包所带的标记(mark)和所通过的网络接口, 并可在用户空间同时运行多个守护进程,每一个进程处理一张路由表. IP: PIM-SM version 1 support CONFIG_IP_PIMSM_V1 Sparse Mode PIM (Protocol Independent Multicast) version 1 支持. 该协议被Cisco路由器广泛支持,你需要特定的软件(pimd-v1)才能使用它. IP: PIM-SM version 2 support CONFIG_IP_PIMSM_V2 Sparse Mode PIM (Protocol Independent Multicast) version 2 支持. 该协议的使用并不广泛,你需要特定的软件(pimd 或 gated-5)才能使用它. IP: ARP daemon support CONFIG_ARPD 通常情况下,内核自身会使用ARP协议解析本地网络中的IP地址与MAC地址的对应关系, 并进行缓存.开启此项后,内核将使用用户空间的守护进程进行ARP解析. 这主要是为了使用其他的替代解析协议(比如mGRE隧道中的NHRP),或调试目的.不确定的选"N". IP: TCP syncookie support CONFIG_SYN_COOKIES TCP syncookie 支持,这是抵抗SYN flood攻击的好东西.此特性的开关可以通过 "/proc/sys/net/ipv4/tcp_syncookies"文件控制,写入"1"表示开启,写入"0"表示关闭. 建议服务器环境开启此项. Virtual (secure) IP: tunneling CONFIG_NET_IPVTI 虚拟IP隧道.可以和xfrm隧道一起使用,以实现IPSEC安全隧道,并在其上使用路由协议.不确定的选"N". IP: Foo (IP protocols) over UDP IP：Foo（IP协议）通过UDP IP: FOU encapsulation of IP tunnels IP：IP隧道的FOU封装 IP: AH transformation CONFIG_INET_AH IPsec AH 支持.IPsec验证头(AH)可对整个数据包(IP报头与数据)提供身份验证/完整性/抗重播保护. 但是它不提供保密性,即它不对数据进行加密.由于这个原因,AH头正在慢慢被ESP头取代. IP: ESP transformation CONFIG_INET_ESP IPsec ESP 支持.IPsec封装安全负载(ESP)不仅为IP负载提供身份验证/完整性/抗重播保护,还提供保密性, 也就是还对数据进行加密.ESP有两种使用模式:传输模式(ESP不对整个数据包进行签名, 只对IP负载(不含IP报头)进行保护)和隧道模式(将原始IP包封装进新的带有ESP头的IP包内, 可提供完整的保护).ESP可以独立使用,也可与AH组合使用(越来越少). IP: ESP transformation offload IP：ESP转换卸载 IP: IPComp transformation CONFIG_INET_IPCOMP IP静荷载压缩协议(IP Payload Compression Protocol)(RFC3173)支持.用于支持IPsec IP: IPsec transport mode CONFIG_INET_XFRM_MODE_TRANSPORT IPsec传输模式.常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密, 因此任何标准设备或软件都可查看和使用IP头 IP: IPsec tunnel mode CONFIG_INET_XFRM_MODE_TUNNEL IPsec隧道模式.用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载) 都已经过加密处理且分配有新的ESP头/IP头/验证尾,从而能够隐藏受保护站点的拓扑结构 IP: IPsec BEET mode CONFIG_INET_XFRM_MODE_BEET IPsec BEET模式. Large Receive Offload (ipv4/tcp) CONFIG_INET_LRO LRO(Large Receive Offload) (ipv4/tcp) 支持.它通过将多个TCP数据整合在一个skb结构中, 并在稍后的某个时刻作为一个大的数据包交付给上层的网络协议栈, 以减少上层协议栈处理skb的开销,提高Linux系统接收TCP数据包的能力. 目前,主流网卡驱动都已支持此特性.建议开启.不过,LRO不应该在路由器上开启, 因为它破坏了end-to-end原则,并会对路由性能造成显著的不利影响. INET: socket monitoring interface CONFIG_INET_DIAG INET(TCP,DCCP,...) socket 监视接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它 UDP: socket monitoring interface CONFIG_INET_UDP_DIAG UDP socket 监视接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它 RAW: socket monitoring interface RAW:套接字监控接口 INET: allow privileged process to administratively close sockets INET:允许特权进程以管理方式关闭套接字 TCP: advanced congestion control CONFIG_TCP_CONG_ADVANCED 高级拥塞控制,子项提供多种拥塞控制算法供选用.如果没有特殊需求就别选了, 内核会自动将默认的拥塞控制设为"CUBIC"并将"new Reno"作为候补. 仅在你确实知道自己需要的情况下选"Y".不确定的选"N". TCP: MD5 Signature Option support (RFC2385) CONFIG_TCP_MD5SIG RFC2385中描述了一种对TCP会话进行MD5签名的保护机制. 目前仅用于保护互联网运营商骨干路由器间的BGP会话.一般的路由器/服务器等设备根本不需要这个. The IPv6 protocol CONFIG_IPV6 引领未来的IPv6支持. IPv6: Privacy Extensions (RFC 3041) support CONFIG_IPV6_PRIVACY IPv6利用"Stateless Address Autoconfiguration"在无DHCP服务器的情况下,产生可用的"临时IPv6地址". 而本选项则为这个机制增加"隐私扩展"(RFC4941)保护.默认状态下, 内核并不生产"临时地址",需要"echo 2 >/proc/sys/net/ipv6/conf/all/use_tempaddr"才能开启 IPv6: Router Preference (RFC 4191) support CONFIG_IPV6_ROUTER_PREF 主机连上IPv6网络后,会发出路由器邀请包(Router Solicitation), 路由器则应答路由器公告包(Router Advertisement), 其中包含网关地址/IPv6前缀/DNS地址,这样主机就能取得IPv6地址, 并连接到互联网上,这就是无状态地址自动分配 (StateLess Address AutoConfiguration)."Router Preference"是"Router Advertisement"包的可选扩展. 它可以改进主机选中路由器的能力,特别是在多归属(multi-homed)网络中.不确定的选"N". IPv6: Route Information (RFC 4191) support CONFIG_IPV6_ROUTE_INFO 对"Route Information"的实验性支持. IPv6: Enable RFC 4429 Optimistic DAD CONFIG_IPV6_OPTIMISTIC_DAD 乐观重复地址检测(Optimistic Duplicate Address Detection)的实验性支持. 可以更快的进行自动地址配置.不确定的选"N". IPv6: AH transformation CONFIG_INET6_AH IPsec AH 支持.不确定的选"Y"或"M".AH头正在慢慢被ESP头取代. IPv6: ESP transformation CONFIG_INET6_ESP IPsec ESP 支持.不确定的选"Y"或"M". IPv6: ESP transformation offload IPv6：ESP转换卸载 IPv6: IPComp transformation CONFIG_INET6_IPCOMP IPv6静荷载压缩协议(IP Payload Compression Protocol)(RFC3173)支持. 用于支持IPsec.不确定的选"Y"或"M". IPv6: Mobility CONFIG_IPV6_MIP6 移动IPv6(RFC3775)支持.主要用于移动设备.不确定的选"N". IPv6: Identifier Locator Addressing (ILA) IPv6：标识符定位器寻址(ILA) IPv6: IPsec transport mode CONFIG_INET6_XFRM_MODE_TRANSPORT IPsec传输模式.常用于对等通信,用以提供内网安全. 数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP头.不确定的选"Y"或"M". IPv6: IPsec tunnel mode CONFIG_INET6_XFRM_MODE_TUNNEL IPsec隧道模式.用于提供外网安全(包括虚拟专用网络). 整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP头/IP头/验证尾, 从而能够隐藏受保护站点的拓扑结构.不确定的选"Y"或"M". IPv6: IPsec BEET mode CONFIG_INET6_XFRM_MODE_BEET IPsec BEET模式.不确定的选"Y"或"M". IPv6: MIPv6 route optimization mode CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION 移动IPv6(Mobile IPv6)路由优化模式.主要用于移动设备.不确定的选"N". Virtual (secure) IPv6: tunneling 虚拟（安全）IPv6：隧道 IPv6: IPv6-in-IPv4 tunnel (SIT driver) CONFIG_IPV6_SIT 在IPv4网络上建立IPv6隧道.如果你希望可以通过IPv4网络接入一个IPv6网络,可以选"Y"或"M",否则选"N". IPv6: IPv6 Rapid Deployment (6RD) CONFIG_IPV6_SIT_6RD IPv6快速部署(6RD)支持.不确定的选"N". IPv6: IP-in-IPv6 tunnel (RFC2473) CONFIG_IPV6_TUNNEL IPv6-in-IPv6/IPv4-in-IPv6 隧道(RFC2473)支持.不确定的选"N". IPv6: GRE tunnel CONFIG_IPV6_GRE 基于IPv6的通用路由封装(Generic Routing Encapsulation)隧道支持. 该驱动主要用于对端是Cisco路由器的场合, 因为Cisco的路由器特别偏好GRE隧道(而不是CONFIG_IPV6_TUNNEL), 并且GRE还允许通过隧道对组播进行再分发. IPv6: Multiple Routing Tables CONFIG_IPV6_MULTIPLE_TABLES 多重路由表(Multiple Routing Tables)支持.不确定的选"N". IIPv6: source address based routing CONFIG_IPV6_SUBTREES 允许根据源地址或前缀进行路由.不确定的选"N". IPv6: multicast routing CONFIG_IPV6_MROUTE 测试性的IPv6组播路由支持.实际应用的场合很少,不确定的选"N". IPv6: multicast policy routing CONFIG_IPV6_MROUTE_MULTIPLE_TABLES 通常,组播路由器上会运行一个单独的用户态守护进程,根据源地址和目的地址来处理数据包. 开启此项后,将能同时考虑数据包所带的标记(mark)和所通过的网络接口, 并可在用户空间同时运行多个守护进程,每一个进程处理一张路由表. IPv6: PIM-SM version 2 support CONFIG_IPV6_PIMSM_V2 IPv6 PIM multicast routing protocol PIM-SMv2 支持. IPv6: Segment Routing Header encapsulation support IPv6：段路由头封装支持 IPv6: Segment Routing HMAC support IPv6：段路由HMAC支持 NetLabel subsystem support CONFIG_NETLABEL NetLabel子系统支持.NetLabel子系统为诸如CIPSO与RIPSO之类能够在分组信息上添加标签的协议提供支持, 看不懂就别选了. Security Marking CONFIG_NETWORK_SECMARK 对网络包进行安全标记,类似于nfmark,但主要是为安全目的而设计.看不懂的就别选了 Timestamping in PHY devices CONFIG_NETWORK_PHY_TIMESTAMPING 允许在硬件支持的前提下,为物理层(PHY)数据包打上时间戳.这会略微增加发送与接收的开销.不确定的选"N". Network packet filtering framework (Netfilter) CONFIG_NETFILTER Netfilter可以对数据包进行过滤和修改,可以作为防火墙("packet filter"或"proxy-based") 或网关(NAT)或代理(proxy)或网桥使用. Network packet filtering debugging CONFIG_NETFILTER_DEBUG 仅供开发者调试Netfilter使用 Advanced netfilter configuration CONFIG_NETFILTER_ADVANCED 选"Y"将会显示所有模块供用户选择,选"N"则会隐藏一些不常用的模块,并自动将常用模块设为"M". Bridged IP/ARP packets filtering CONFIG_BRIDGE_NETFILTER 如果你希望使用桥接防火墙就打开它.不确定的选"N". Core Netfilter Configuration 核心Netfilter配置(当包流过Chain时如果match某个规则那么将由该规则的target来处理, 否则将由同一个Chain中的下一个规则进行匹配,若不match所有规则那么最终将由该Chain的policy进行处理) Netfilter NFACCT over NFNETLINK interface CONFIG_NETFILTER_NETLINK_ACCT 允许通过NFNETLINK接口支持NFACCT(记账). Netfilter NFQUEUE over NFNETLINK interface CONFIG_NETFILTER_NETLINK_QUEUE 允许通过NFNETLINK接口支持NFQUEUE(排队). Netfilter LOG over NFNETLINK interface CONFIG_NETFILTER_NETLINK_LOG 允许通过NFNETLINK接口支持"LOG"(日志).该选项废弃了ipt_ULOG和ebg_ulog机制, 并打算在将来废弃基于syslog的ipt_LOG和ip6t_LOG模块. Netfilter connection tracking support CONFIG_NF_CONNTRACK 连接追踪(connection tracking)支持, 连接跟踪把所有连接都保存在一个表格内,并将每个包关联到其所属的连接. 可用于报文伪装或地址转换,也可用于增强包过滤能力. Connection mark tracking support CONFIG_NF_CONNTRACK_MARK 允许对连接进行标记,与针对单独的包进行标记的不同之处在于它是针对连接流的. CONNMARK target 和 connmark match 需要它的支持. Connection tracking security mark support CONFIG_NF_CONNTRACK_SECMARK 允许对连接进行安全标记,通常这些标记包(SECMARK)复制到其所属连接(CONNSECMARK), 再从连接复制到其关联的包(SECMARK). Connection tracking zones CONFIG_NF_CONNTRACK_ZONES "conntrack zones"支持.通常,每个连接需要一个全局唯一标示符, 而"conntrack zones"允许在不同zone内的连接使用相同的标识符. Supply CT list in procfs (OBSOLETE) CONFIG_NF_CONNTRACK_PROCFS 已被废弃,选"N". Connection tracking events CONFIG_NF_CONNTRACK_EVENTS 连接跟踪事件支持.如果启用这个选项,连接跟踪代码将提供一个"notifier"链, 它可以被其它内核代码用来获知连接跟踪状态的改变 Connection tracking timeout CONFIG_NF_CONNTRACK_TIMEOUT 连接跟踪"timeout"扩展.这样你就可以在网络流上通过 CT target 附加超时策略. Connection tracking timestamping CONFIG_NF_CONNTRACK_TIMESTAMP 时间戳支持.这样你就能在连接建立和断开时打上时间戳. DCCP protocol connection tracking support CONFIG_NF_CT_PROTO_DCCP DCCP协议支持. SCTP protocol connection tracking support CONFIG_NF_CT_PROTO_SCTP SCTP协议支持. UDP-Lite protocol connection tracking support CONFIG_NF_CT_PROTO_UDPLITE UDP-Lite支持. Amanda backup protocol support CONFIG_NF_CONNTRACK_AMANDA Amanda备份协议支持. FTP protocol support CONFIG_NF_CONNTRACK_FTP 文件传输协议(FTP)支持.跟踪FTP连接需要额外的帮助程序. H.323 protocol support CONFIG_NF_CONNTRACK_H323 H.323协议支持. IRC protocol support CONFIG_NF_CONNTRACK_IRC IRC扩展协议DCC(Direct Client-to-Client Protocol)支持. 该协议允许用户之间绕开服务器直接聊天和传输文件. NetBIOS name service protocol support CONFIG_NF_CONNTRACK_NETBIOS_NS NetBIOS协议支持. SNMP service protocol support CONFIG_NF_CONNTRACK_SNMP SNMP协议支持. PPtP protocol support CONFIG_NF_CONNTRACK_PPTP RFC2637 点对点隧道协议(Point to Point Tunnelling Protocol)协议支持. SANE protocol support CONFIG_NF_CONNTRACK_SANE SANE协议支持. SIP protocol support CONFIG_NF_CONNTRACK_SIP SIP协议支持. TFTP protocol support CONFIG_NF_CONNTRACK_TFTP TFTP协议支持. Connection tracking netlink interface CONFIG_NF_CT_NETLINK 基于netlink的用户接口支持. Connection tracking timeout tuning via Netlink CONFIG_NF_CT_NETLINK_TIMEOUT 通过Netlink机制支持对连接追踪超时进行细粒度的调节:允许为特定的网络流指定超时策略, 而不是使用统一的全局超时策略. Connection tracking helpers in user-space via Netlink CONFIG_NF_CT_NETLINK_HELPER 通过Netlink机制为用户空间的连接追踪帮助程序提供基础框架. NFQUEUE integration with Connection Tracking CONFIG_NETFILTER_NETLINK_QUEUE_CT 开启此项后,即使网络包已经在队列(NFQUEUE)中,它依然可以包含连接追踪信息. Transparent proxying support CONFIG_NETFILTER_TPROXY 透明代理支持,也就是可以处理非本地的 IPv4 TCP/UDP 套接字. 此功能需要配合一些iptables规则和策略路由才能工作. 详见"Documentation/networking/tproxy.txt"文档. Netfilter Xtables support (required for ip_tables) CONFIG_NETFILTER_XTABLES 如果你打算使用 ip_tables, ip6_tables, arp_tables 之一就必须选上 nfmark target and match support CONFIG_NETFILTER_XT_MARK "nfmark"是用户给包打上的一个自定义标记.用于match时, 允许基于"nfmark"值对包进行匹配.用于target时, 允许在"mangle"表中创建规则以改变包的"nfmark"值. ctmark target and match support CONFIG_NETFILTER_XT_CONNMARK "ctmark"是用户以连接为组,给同一连接中的所有包打上的自定义标记.用法与"nfmark"相似. set target and match support CONFIG_NETFILTER_XT_SET "set"是ipset工具创建的IP地址集合.使用match可以对IP地址集合进行匹配, 使用target可以对集合中的项进行增加和删除. AUDIT target support CONFIG_NETFILTER_XT_TARGET_AUDIT 为被drop/accept的包创建审计记录. CHECKSUM target support CONFIG_NETFILTER_XT_TARGET_CHECKSUM 用于"mangle"表,为缺少校验和的包添加checksum字段的值. 主要是为了兼容一些老旧的网络程序(例如某些dhcp客户端). "CLASSIFY" target support CONFIG_NETFILTER_XT_TARGET_CLASSIFY 允许为包设置优先级,一些qdiscs排队规则(atm,cbq,dsmark,pfifo_fast,htb,prio)需要使用它 "CONNMARK" target support CONFIG_NETFILTER_XT_TARGET_CONNMARK 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_CONNMARK "CONNSECMARK" target support CONFIG_NETFILTER_XT_TARGET_CONNSECMARK 针对链接进行安全标记,同时还会将连接上的标记还原到包上 (如果链接中的包尚未进行安全标记),通常与 SECMARK target 联合使用 "CT" target support CONFIG_NETFILTER_XT_TARGET_CT 允许为包加上连接追踪相关的参数,比如"event"和"helper". "DSCP" and "TOS" target support CONFIG_NETFILTER_XT_TARGET_DSCP DSCP target 允许对IPv4/IPv6包头部的DSCP (Differentiated Services Codepoint)字段(常用于Qos)进行修改. TOS target 允许在"mangle"表创建规则以修改IPv4包头的 TOS(Type Of Service)字段或IPv6包头的Priority字段. "HL" hoplimit target support CONFIG_NETFILTER_XT_TARGET_HL HL(IPv6)/TTL(IPv4) target 允许更改包头的 hoplimit/time-to-live 值. "HMARK" target support CONFIG_NETFILTER_XT_TARGET_HMARK 允许在"raw"和"mangle"表中创建规则,以根据特定范围的哈希计算结果设置"skbuff"标记. IDLETIMER target support CONFIG_NETFILTER_XT_TARGET_IDLETIMER 每个被匹配的包的定时器都会被强制指定为规则指定的值, 当超时发生时会触发一个sysfs文件系统的通知.剩余时间可以通过sysfs读取. "LED" target support CONFIG_NETFILTER_XT_TARGET_LED 允许在满足特定条件的包通过的时候,触发LED灯闪烁. 比如可以用于控制网卡的状态指示灯仅在有SSH活动的时候才闪烁. LOG target support CONFIG_NETFILTER_XT_TARGET_LOG 允许向syslog中记录包头信息. "MARK" target support CONFIG_NETFILTER_XT_TARGET_MARK 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MARK "NETMAP" target support CONFIG_NETFILTER_XT_TARGET_NETMAP NETMAP用于实现一对一的静态NAT(地址转换). "NFLOG" target support CONFIG_NETFILTER_XT_TARGET_NFLOG 通过nfnetlink_log记录日志. "NFQUEUE" target Support CONFIG_NETFILTER_XT_TARGET_NFQUEUE 用于替代老旧的 QUEUE target. 因为NFQUEUE能支持最多65535个队列,而QUEUE只能支持一个. "NOTRACK" target support (DEPRECATED) CONFIG_NETFILTER_XT_TARGET_NOTRACK 已被废弃,勿选. "RATEEST" target support CONFIG_NETFILTER_XT_TARGET_RATEEST RATEEST target 允许测量网络流的传输速率.[注: rateest match 允许根据速率进行匹配.] REDIRECT target support CONFIG_NETFILTER_XT_TARGET_REDIRECT REDIRECT是一种特别的NAT:所有进入的连接都被映射到其入口网卡的地址, 这样这些包就会"流入"本机而不是"流过"本机.这主要用于实现透明代理. "TEE" - packet cloning to alternate destination CONFIG_NETFILTER_XT_TARGET_TEE 对包进行克隆,并将克隆的副本路由到另一个临近的路由器(Next Hop). "TPROXY" target support CONFIG_NETFILTER_XT_TARGET_TPROXY 类似于REDIRECT,但并不依赖于连接追踪和NAT,也只能用于"mangle"表, 用于将网络流量重定向到透明代理. "TRACE" target support CONFIG_NETFILTER_XT_TARGET_TRACE 允许对包打标记,这样内核就可以记录每一个匹配到的规则. "SECMARK" target support CONFIG_NETFILTER_XT_TARGET_SECMARK 允许对包进行安全标记,用于安全子系统 "TCPMSS" target support CONFIG_NETFILTER_XT_TARGET_TCPMSS 允许更改 TCP SYN 包的MSS(Maximum Segment Size)值,通常=MTU-40. "TCPOPTSTRIP" target support CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP 允许从TCP包头中剥离所有TCP选项. "addrtype" address type match support CONFIG_NETFILTER_XT_MATCH_ADDRTYPE 根据地址类型进行匹配: UNICAST, LOCAL, BROADCAST, ... "bpf" match support CONFIG_NETFILTER_XT_MATCH_BPF BPF(BSD Packet Filter)是一个强大的包匹配模块,用于匹配那些让过滤器返回非零值的包. "cluster" match support CONFIG_NETFILTER_XT_MATCH_CLUSTER 这个模块可以用于创建网络服务器/防火墙集群,而无需借助价格昂贵的负载均衡设备. 通常,在包必须被本节点处理的条件下,这个match返回"true". 这样,所有节点都可以看到所有的包,但只有匹配的节点才需要进行处理, 这样就将负载进行了分摊.而分摊算法是基于对源地址的哈希值. "comment" match support CONFIG_NETFILTER_XT_MATCH_COMMENT 这是一个"伪match",目的是允许你在iptables规则集中加入注释 "connbytes" per-connection counter match support CONFIG_NETFILTER_XT_MATCH_CONNBYTES 允许针对单个连接内部每个方向(进/出)匹配已经传送的字节数/包数 "connlabel" match support CONFIG_NETFILTER_XT_MATCH_CONNLABEL 允许向连接分配用户自定义的标签名.内核仅存储bit值, 而名称和bit之间的对应关系由用户空间处理.与"connmark"的不同之处在于: 可以同时为一个连接分配32个标志位(flag bit). "connlimit" match support CONFIG_NETFILTER_XT_MATCH_CONNLIMIT 允许根据每一个客户端IP地址(或每一段客户端IP地址段)持有的并发连接数进行匹配. "connmark" connection mark match support CONFIG_NETFILTER_XT_MATCH_CONNMARK 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_CONNMARK "conntrack" connection tracking match support CONFIG_NETFILTER_XT_MATCH_CONNTRACK 通用连接跟踪匹配,是"state"的超集,它允许额外的链接跟踪信息, 在需要设置一些复杂的规则(比如网关)时很有用 "cpu" match support CONFIG_NETFILTER_XT_MATCH_CPU 根据处理包所使用的CPU是哪个进行匹配 "dccp" protocol match support CONFIG_NETFILTER_XT_MATCH_DCCP DCCP是打算取代UDP的新传输协议,它在UDP的基础上增加了流控和拥塞控制机制,面向实时业务 "devgroup" match support CONFIG_NETFILTER_XT_MATCH_DEVGROUP 允许根据网卡所属的"设备组"进行匹配 "dscp" and "tos" match support CONFIG_NETFILTER_XT_MATCH_DSCP dscp match 允许根据IPv4/IPv6包头的DSCP字段进行匹配, tos match 允许根据IPv4包头的TOS字段进行匹配 "ecn" match support CONFIG_NETFILTER_XT_MATCH_ECN 允许根据IPv4 TCP包头的ECN字段进行匹配 "esp" match support CONFIG_NETFILTER_XT_MATCH_ESP 允许对IPSec包的ESP头中的SPI(安全参数序列)范围进行匹配 "hashlimit" match support CONFIG_NETFILTER_XT_MATCH_HASHLIMIT 此项的目的是取代"limit",它基于你选定的源/目的地址和/或端口动态创建"limit bucket"哈希表. 这样你就可以迅速创建类似这样的匹配规则:(1)为给定的目的地址以每秒10k个包的速度进行 匹配;(2)为给定的源地址以每秒500个包的速率进行匹配 "helper" match support CONFIG_NETFILTER_XT_MATCH_HELPER 加载特定协议的连接跟踪辅助模块,由该模块过滤所跟踪的连接类型的包,比如ip_conntrack_ftp模块 "hl" hoplimit/TTL match support CONFIG_NETFILTER_XT_MATCH_HL 基于IPv6包头的hoplimit字段,或IPv4包头的time-to-live字段进行匹配 "iprange" address range match support CONFIG_NETFILTER_XT_MATCH_IPRANGE 根据IP地址范围进行匹配,而普通的iptables只能根据"IP/mask"的方式进行匹配. "ipvs" match support CONFIG_NETFILTER_XT_MATCH_IPVS 允许根据包的IPVS属性进行匹配 "length" match support CONFIG_NETFILTER_XT_MATCH_LENGTH 允许对包的长度进行匹配 "limit" match support CONFIG_NETFILTER_XT_MATCH_LIMIT 允许根据包的进出速率进行规则匹配,常和"LOG target"配合使用以抵抗某些Dos攻击 "mac" address match support CONFIG_NETFILTER_XT_MATCH_MAC 允许根据以太网的MAC地址进行匹配 "mark" match support CONFIG_NETFILTER_XT_MATCH_MARK 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MARK "multiport" Multiple port match support CONFIG_NETFILTER_XT_MATCH_MULTIPORT 允许对TCP或UDP包同时匹配多个不连续的端口(通常情况下只能匹配单个端口或端口范围) "nfacct" match support CONFIG_NETFILTER_XT_MATCH_NFACCT 允许通过nfnetlink_acct使用扩展记账 "osf" Passive OS fingerprint match CONFIG_NETFILTER_XT_MATCH_OSF 开启Passive OS Fingerprinting模块,以允许通过进入的TCP SYN包被动匹配远程操作系统. 规则和加载程序可以从这里获取:http://www.ioremap.net/projects/osf "owner" match support CONFIG_NETFILTER_XT_MATCH_OWNER 基于创建套接字的本地进程身份(user/group)进行匹配,还可以用于检查一个套接字是否确实存在 IPsec "policy" match support CONFIG_NETFILTER_XT_MATCH_POLICY 基于IPsec policy进行匹配 "physdev" match support CONFIG_NETFILTER_XT_MATCH_PHYSDEV 允许对进入或离开所经过的物理网口进行匹配 "pkttype" packet type match support CONFIG_NETFILTER_XT_MATCH_PKTTYPE 允许对封包目的地址类别(广播/组播/直播)进行匹配 "quota" match support CONFIG_NETFILTER_XT_MATCH_QUOTA 允许对总字节数的限额值进行匹配 "rateest" match support CONFIG_NETFILTER_XT_MATCH_RATEEST 根据 RATEEST target 评估的速率值进行匹配 "realm" match support CONFIG_NETFILTER_XT_MATCH_REALM 允许根据iptables中的路由子系统中的realm值进行匹配.它与tc中的CONFIG_NET_CLS_ROUTE4非常类似. "recent" match support CONFIG_NETFILTER_XT_MATCH_RECENT recent match 用于创建一个或多个最近使用过的地址列表,然后又可以根据这些列表再进行匹配. "sctp" protocol match support CONFIG_NETFILTER_XT_MATCH_SCTP 支持根据流控制传输协议(SCTP)源/目的端口和"chunk type"进行匹配. "socket" match support CONFIG_NETFILTER_XT_MATCH_SOCKET can be used to match packets for which a TCP or UDP socket lookup finds a valid socket. It can be used in combination with the MARK target and policy routing to implement full featured non-locally bound sockets. "state" match support CONFIG_NETFILTER_XT_MATCH_STATE 这是对包进行分类的有力工具,它允许利用连接跟踪信息对连接中处于特定状态的包进行匹配 "statistic" match support CONFIG_NETFILTER_XT_MATCH_STATISTIC 允许根据一个给定的百分率对包进行周期性的或随机性的匹配 "string" match support CONFIG_NETFILTER_XT_MATCH_STRING 允许根据包所承载的数据中包含的特定字符串进行匹配 "tcpmss" match support CONFIG_NETFILTER_XT_MATCH_TCPMSS 允许根据TCP SYN包头中的MSS(最大分段长度)选项的值进行匹配 "time" match support CONFIG_NETFILTER_XT_MATCH_TIME 根据包的到达时刻(外面进入的包)或者离开时刻(本地生成的包)进行匹配 "u32" match support CONFIG_NETFILTER_XT_MATCH_U32 "u32"允许从包中提取拥有特定mask的最多4字节数据,将此数据移动(shift)特定的位数, 然后测试其结果是否位于特定的集合范围内. 更多细节可以直接参考内核源码(net/netfilter/xt_u32.c) IP set support CONFIG_IP_SET 为内核添加IP集(IP set)支持,然后就可以使用CONFIG_NETFILTER_XT_SET功能.此 特性必须配合用户态工具ipset一起使用. Maximum number of IP sets CONFIG_IP_SET_MAX 默认的最大"set"数,取值范围是[2,65534].此值也可以由ip_set模块的max_sets参数设置. bitmap:ip set support CONFIG_IP_SET_BITMAP_IP "bitmap:ip"集合类型.根据IP地址范围设定集合. bitmap:ip,mac set support CONFIG_IP_SET_BITMAP_IPMAC "bitmap:ip,mac"集合类型.根据IP/MAC地址对范围设定集合. bitmap:port set support CONFIG_IP_SET_BITMAP_PORT "bitmap:port"集合类型.根据端口范围设定集合. hash:ip set support CONFIG_IP_SET_HASH_IP "hash:ip"集合类型.为多个离散的IP地址设定集合. hash:ip,port set support CONFIG_IP_SET_HASH_IPPORT "hash:ip,port"集合类型.为多个离散的IP/MAC地址对设定集合. hash:ip,port,ip CONFIG_IP_SET_HASH_IPPORTIP "hash:ip,port,ip"集合类型.为多个离散的IP/端口/IP三元组设定集合. hash:ip,port,net set support CONFIG_IP_SET_HASH_IPPORTNET "hash:ip,port,net"集合类型.为多个离散的IP/端口/网段三元组设定集合. hash:net set support CONFIG_IP_SET_HASH_NET "hash:net"集合类型.为多个离散的网段设定集合 hash:net,port set support CONFIG_IP_SET_HASH_NETPORT "hash:net,port"集合类型.为多个离散的网段/端口对设定集合 hash:net,iface set support CONFIG_IP_SET_HASH_NETIFACE "hash:net,iface"集合类型.为多个离散的网段/网卡接口对设定集合 list:set set support CONFIG_IP_SET_LIST_SET "list:set"集合类型.将多个集合组成一个更大的集合 IP virtual server support CONFIG_IP_VS IPVS(IP Virtual Server)支持.IPVS可以帮助LVS基于多个后端真实服务器创建一个高性能的虚拟服务器. 可以使用三种具体的方法实现:NAT,隧道,直接路由(使用较广). IPv6 support for IPVS CONFIG_IP_VS_IPV6 为IPVS添加IPv6支持 IP virtual server debugging CONFIG_IP_VS_DEBUG 为IPVS添加调试支持 IPVS connection table size (the Nth power of 2) CONFIG_IP_VS_TAB_BITS 设置IPVS连接哈希表的大小(2CONFIG_IP_VS_TAB_BITS),取值范围是[8,20], 默认值12的意思是哈希表的大小是212=4096项.IPVS连接哈希表使用链表来处理哈希碰撞. 使用大的哈希表能够显著减少碰撞几率,特别是哈希表中有成千上万连接的时候. 比较恰当的值差不多等于每秒的新建连接数乘以每个连接的平均持续秒数. 太小的值会造成太多碰撞,从而导致性能大幅下降;太大的值又会造成占用太多不必要的内存 (每个表项8字节+每个连接128字节).该值也可以通过ip_vs模块的conn_tab_bits参数进行设置. TCP load balancing support CONFIG_IP_VS_PROTO_TCP TCP传输协议负载均衡支持 UDP load balancing support CONFIG_IP_VS_PROTO_UDP UDP传输协议负载均衡支持 ESP load balancing support CONFIG_IP_VS_PROTO_ESP IPSec ESP(Encapsulation Security Payload)传输协议负载均衡支持 AH load balancing support CONFIG_IP_VS_PROTO_AH IPSec AH(Authentication Header)传输协议负载均衡支持. SCTP load balancing support CONFIG_IP_VS_PROTO_SCTP SCTP传输协议负载均衡支持 round-robin scheduling CONFIG_IP_VS_RR 循环分散算法:最简单的调度算法,将连接简单的循环分散到后端服务器上 weighted round-robin scheduling CONFIG_IP_VS_WRR 基于权重的循环分散算法:在循环分散的基础上,权重较高的后端服务器接纳较多的连接 least-connection scheduling CONFIG_IP_VS_LC 最少连接算法:将连接优先分配到活动连接最少的后端服务器 weighted least-connection scheduling CONFIG_IP_VS_WLC 基于权重的最少连接算法:结合考虑活动连接数与服务器权重 locality-based least-connection scheduling CONFIG_IP_VS_LBLC 基于目的IP的最少连接算法(常用于缓存集群): 优先根据目的IP地址将连接分配到特定的后端, 仅在这些后端过载时(活动连接数大于其权重)才分散到其他后端. locality-based least-connection with replication scheduling CONFIG_IP_VS_LBLCR 与LBLC类似,不同之处在于:前端负载均衡器会像NAT一样同时记住客户端IP与后端的 对应关系,并在新的连接到来的时候,复用这个对应关系. destination hashing scheduling CONFIG_IP_VS_DH 目标地址哈希表算法:简单的根据静态设定的目标IP地址哈希表将连接分发到后端 source hashing scheduling CONFIG_IP_VS_SH 源地址哈希表算法:简单的根据静态设定的源IP地址哈希表将连接分发到后端 shortest expected delay scheduling CONFIG_IP_VS_SED 最小期望延迟算法:将连接分配到根据期望延迟公式((Ci+1)/Ui)算得的延迟最小的后端. "i"是后端服务器编号,"Ci"是该服务器当前的连接数,"Ui"是该服务器的权重. never queue scheduling CONFIG_IP_VS_NQ 无排队算法:这是一个两阶段算法,如果有空闲服务器,就直接分发到空闲服务器 (而不是等待速度最快的服务器),如果没有空闲服务器,就分发到期望延迟最小的服务器(SED算法). IPVS source hashing table size (the Nth power of 2) CONFIG_IP_VS_SH_TAB_BITS 将源IP地址映射到后端服务器所使用的哈希表的大小(2CONFIG_IP_VS_SH_TAB_BITS), 取值范围是[4,20],默认值8的意思是哈希表的大小是28=256项. 理想的大小应该是所有后端的权重乘以后端总数? FTP protocol helper CONFIG_IP_VS_FTP FTP协议连接追踪帮助 Netfilter connection tracking CONFIG_IP_VS_NFCT Netfilter连接追踪支持 SIP persistence engine CONFIG_IP_VS_PE_SIP 基于SIP Call-ID提供持久连接支持 IP: Netfilter Configuration 针对IPv4的Netfilter配置 IPv4 connection tracking support (required for NAT) CONFIG_NF_CONNTRACK_IPV4 IPv4链接跟踪.可用于包伪装或地址转换,也可用于增强包过滤能力 proc/sysctl compatibility with old connection tracking CONFIG_NF_CONNTRACK_PROC_COMPAT 用于兼容老旧的连接追踪用户态程序 IP tables support (required for filtering/masq/NAT) CONFIG_IP_NF_IPTABLES 要用iptables就肯定要选上 "ah" match support CONFIG_IP_NF_MATCH_AH 允许对IPSec包头的AH字段进行匹配 "ecn" match support CONFIG_IP_NF_MATCH_ECN 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MATCH_ECN "rpfilter" reverse path filter match support CONFIG_IP_NF_MATCH_RPFILTER 对进出都使用同一个网络接口的包进行匹配 "ttl" match support CONFIG_IP_NF_MATCH_TTL 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MATCH_HL Packet filtering CONFIG_IP_NF_FILTER 定义filter表,以允许对包进行过滤 REJECT target support CONFIG_IP_NF_TARGET_REJECT 允许返回一个ICMP错误包而不是简单的丢弃包 ULOG target support CONFIG_IP_NF_TARGET_ULOG 反对使用该选项,因为它已经被CONFIG_NETFILTER_NETLINK_LOG代替 IPv4 NAT CONFIG_NF_NAT_IPV4 允许进行伪装/端口转发以及其它的NAT功能,仅在你需要使用iptables中的nat表时才需要选择 MASQUERADE target support CONFIG_IP_NF_TARGET_MASQUERADE SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP, 这样,接收方就认为数据包的来源是被替换的那个IP的主机.伪装(MASQUERADE) 是一种特殊类型的SNAT:MASQUERADE是用发送数据的网卡上的IP来替换源IP, 用于那些IP不固定的场合(比如拨号或者通过DHCP分配) NETMAP target support CONFIG_IP_NF_TARGET_NETMAP 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_NETMAP. REDIRECT target support CONFIG_IP_NF_TARGET_REDIRECT 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_REDIRECT. Basic SNMP-ALG support CONFIG_NF_NAT_SNMP_BASIC 为SNMP荷载实现ALG(Application Layer Gateway)支持(RFC2962). Packet mangling CONFIG_IP_NF_MANGLE 在iptables中启用mangle表以便对包进行各种修改,常用于改变包的路由 CLUSTERIP target support CONFIG_IP_NF_TARGET_CLUSTERIP CLUSTERIP target 允许你无需使用昂贵的负载均衡设备也能创建廉价的负载均衡集群 ECN target support CONFIG_IP_NF_TARGET_ECN 用于mangle表,可以去除IPv4包头的ECN(Explicit Congestion Notification)位, 主要用于在保持ECN功能的前提下,去除网络上的"ECN黑洞". "TTL" target support CONFIG_IP_NF_TARGET_TTL 这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_HL. raw table support (required for NOTRACK/TRACE) CONFIG_IP_NF_RAW 在iptables中添加一个raw表,该表在netfilter框架中非常靠前, 并在PREROUTING和OUTPUT链上有钩子,从而可以对收到的数据包在连接跟踪前进行处理 Security table CONFIG_IP_NF_SECURITY 在iptables中添加一个security表,以支持强制访问控制(Mandatory Access Control)策略 ARP tables support CONFIG_IP_NF_ARPTABLES arptables支持 ARP packet filtering CONFIG_IP_NF_ARPFILTER ARP包过滤.对于进入和离开本地的ARP包定义一个filter表,在桥接的情况下还可以应用于 被转发的ARP包 ARP payload mangling CONFIG_IP_NF_ARP_MANGLE 允许对ARP包的荷载部分进行修改,比如修改源和目标物理地址 IPv6: Netfilter Configuration 针对IPv6的Netfilter配置.其子项内容类似于IPv4,需要的话可以参考前面IPv4的Netfilter配置进行选择 DECnet: Netfilter Configuration 针对DECnet的Netfilter配置 Ethernet Bridge tables (ebtables) support CONFIG_BRIDGE_NF_EBTABLES 针对以太网桥的ebtables Netfilter配置 The DCCP Protocol CONFIG_IP_DCCP 数据报拥塞控制协议(Datagram Congestion Control Protocol)在UDP的基础上增加了流控和拥塞控制机制, 使数据报协议能够更好地用于流媒体业务的传输 The SCTP Protocol CONFIG_IP_SCTP 流控制传输协议(Stream Control Transmission Protocol)是一种新兴的传输层协议. TCP协议一次只能连接一个IP地址而在SCTP协议一次可以连接多个IP地址且 可以自动平衡网络负载,一旦某一个IP地址失效会自动将网络负载转移到其他IP地址上 The RDS Protocol CONFIG_RDS 可靠数据报套接字(Reliable Datagram Sockets)协议支持. The TIPC Protocol CONFIG_TIPC 透明内部进程间通信协议(Transparent Inter Process Communication), 以共享内存为基础实现任务和资源的调度,专门用于集群内部通信 Asynchronous Transfer Mode (ATM) CONFIG_ATM 异步传输模式(ATM)支持.主要用于高速LAN和WAN.目前已经日薄西山了. Layer Two Tunneling Protocol (L2TP) CONFIG_L2TP 第二层隧道协议(RFC2661)支持 802.1d Ethernet Bridging CONFIG_BRIDGE 802.1d以太网桥 802.1Q/802.1ad VLAN Support CONFIG_VLAN_8021Q 802.1Q虚拟局域网 DECnet Support CONFIG_DECNET DECnet协议 ANSI/IEEE 802.2 LLC type 2 Support CONFIG_LLC2 PF_LLC类型套接字支持.也就是IEEE 802.2 LLC 2 The IPX protocol CONFIG_IPX IPX协议是由Novell公司提出的运行于OSI模型第三层的协议,具有可路由的特性, IPX的地址分为网络地址和主机地址,网络地址由管理员分配,主机地址为MAC地址. 由于IP协议的广泛使用,IPX的应用早已日薄西山. Appletalk protocol support CONFIG_ATALK Appletalk是苹果公司创建的一组网络协议,仅用于苹果系列计算机. CCITT X.25 Packet Layer CONFIG_X25 CCITT X.25协议集支持. LAPB Data Link Driver CONFIG_LAPB LAPB协议支持. Phonet protocols family CONFIG_PHONET PhoNet是Nokia开发的面相数据包的通信协议,仅用于Nokia maemo/meego产品. IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support CONFIG_IEEE802154 IEEE Std 802.15.4 定义了一个低速率/低功耗/低复杂度的短距离个人无线网络规范. 主要用于物联网中的传感器/交换器之类设备之间的互联. 6lowpan support over IEEE 802.15.4 CONFIG_IEEE802154_6LOWPAN 在IEEE 802.15.4上支持IPv6压缩. Generic IEEE 802.15.4 Soft Networking Stack (mac802154) CONFIG_MAC802154 为SoftMAC设备(仅实现了PHY层)实现硬件独立的IEEE Std 802.15.4协议栈.使用HardMAC设备的用户应该选"N". [注意]这里的实现既未经过认证,也未进行充分的兼容性测试. QoS and/or fair queueing CONFIG_NET_SCHED QoS(Quality of Service)支持.当内核有多个包需要通过网络发送的时候,它需要决定哪个包先发,那个包后发, 哪个包丢弃.这就是包调度算法.关闭此项表示内核使用最简单的FIFO算法, 开启此项后就可以使用多种不同的调度算法(需要配合用户层工具iproute2+tc). QoS还用于支持diffserv(Differentiated Services)和RSVP(Resource Reservation Protocol)功能. 包调度的状态信息可以从"/proc/net/psched"文件中获取.仅在你确实需要的时候选"Y". Data Center Bridging support CONFIG_DCB DCB(Data Center Bridging)支持. 数据中心桥接是一组可增强传统以太网功能,以管理通信的功能,尤其适用于网络通信流量和传输率都很高的环境中. 光纤通道可专用于承载此类型的通信.但是,如果使用专用链路来仅提供光纤通道通信, 则成本可能会很高.因此,更多情况下使用以太网光纤通道. DCB功能可满足光纤通道对遍历以太网时包丢失的敏感度要求. DCB允许对等方基于优先级区分通信.通过区分优先级,可确保在主机之间发生拥塞时, 保持较高优先级通信的包完整性.使用DCB交换协议, 通信主机可以交换会影响高速网络通信的配置信息.然后,对等方可对公用配置进行协商, 确保通信流不中断,同时防止高优先级包出现包丢失.这些功能都需要底层的网卡支持. 一般网卡都是不支持的.所以不确定的可以选"N". DNS Resolver support CONFIG_DNS_RESOLVER 内核DNS解析支持.用于支持CONFIG_AFS_FS/CONFIG_CIFS/CONFIG_CIFS_SMB2模块. 此功能需要用户态程序"/sbin/dns.resolve"和配置文件"/etc/request-key.conf"的支持. 更多信息参见"Documentation/networking/dns_resolver.txt"文档,不确定的选"N". B.A.T.M.A.N. Advanced Meshing Protocol CONFIG_BATMAN_ADV B.A.T.M.A.N.(更好的移动无线网络方案)是一种用于 multi-hop ad-hoc mesh 网络的路由协议. 它是一种去中心化分布式无线Adhoc模式,特别适用于自然灾害等紧急情况下,创建临时的无线网络.不确定的选"N". Open vSwitch CONFIG_OPENVSWITCH Open vSwitch 是一个多层虚拟交换标准.此选项提供了内核级的高速转发功能 (需要配合用户态守护进程ovs-vswitchd来实现). Virtual Socket protocol CONFIG_VSOCKETS 这是一个类似于TCP/IP的协议,用于虚拟机之间以及虚拟机与宿主之间的通信. 开启此项后,还需要从子项中选择适用于特定虚拟化技术的传输协议. VMware VMCI transport for Virtual Sockets CONFIG_VMWARE_VMCI_VSOCKETS 适用于VMware虚拟化技术的VMCI传输协议支持. NETLINK: mmaped IO CONFIG_NETLINK_MMAP 基于内存映射机制的 netlink IO 支持. 这样可以避免在用户空间与内存空间之间复制数据,从而提升操作速度.建议开启. NETLINK: socket monitoring interface CONFIG_NETLINK_DIAG NETLINK socket 监视接口.ss这样的诊断工具需要它. Network priority cgroup CONFIG_NETPRIO_CGROUP Cgroup子系统支持:基于每个网络接口为每个进程分配网络使用优先级. enable BPF Just In Time compiler CONFIG_BPF_JIT BPF(Berkeley Packet Filter)的过滤功能通常由一个解释器(interpreter)解释执行BPF虚拟机指令的方式工作. 开启此项,内核在加载过滤指令后,会将其编译为本地指令,以加快执行速度. 网络嗅探程序(libpcap/tcpdump)可以从中受益. 注意:需要"echo 1 > /proc/sys/net/core/bpf_jit_enable"之后才能生效. Network testing 网络测试,仅供调试使用 Amateur Radio supportCONFIG_HAMRADIO业余无线电支持.供无线电爱好者进行自我训练/相互通讯/技术研究CAN bus subsystem supportCONFIG_CANCAN(Controller Area Network)是一个低速串行通信协议. 被广泛地应用于工业自动化/船舶/医疗设备/工业设备等嵌入式领域. 更多信息参见"Documentation/networking/can.txt"文件.IrDA (infrared) subsystem supportCONFIG_IRDA红外线通讯技术支持,主要用于嵌入式环境,某些老旧的笔记本上也可能会有红外接口.Bluetooth subsystem supportCONFIG_BT蓝牙支持.蓝牙目前已经基本取代红外线,成为嵌入式设备/智能设备/笔记本的标配近 距离(小于10米)通信设备.在Linux上通常使用来自BlueZ的hciconfig和bluetoothd工具操作蓝牙通信. RFCOMM protocol support CONFIG_BT_RFCOMM 虚拟串口协议(RFCOMM)是一个面向连接的流传输协议,提供RS232控制和状态信号, 从而模拟串口的功能.它被用于支持拨号网络,OBEX(Object Exchange),以及某些蓝牙程序(例如文件传输). RFCOMM TTY support CONFIG_BT_RFCOMM_TTY 允许在RFCOMM通道上模拟TTY终端 BNEP protocol support CONFIG_BT_BNEP 蓝牙网络封装协议(Bluetooth Network Encapsulation Protocol)可以在蓝牙上运行 其他网络协议(TCP/IP). Bluetooth PAN(Personal Area Network)需要它的支持. Multicast filter support CONFIG_BT_BNEP_MC_FILTER 组播支持 Protocol filter support CONFIG_BT_BNEP_PROTO_FILTER 协议过滤器支持 CMTP protocol support CONFIG_BT_CMTP CMTP(CAPI消息传输协议)用于支持已在上世纪被淘汰的ISDN设备.不确定的选"N". HIDP protocol support CONFIG_BT_HIDP 人机接口设备协议(Human Interface Device Protocol)用于支持各种人机接口设备(比如鼠标/键盘/耳机等). Bluetooth device drivers 各种蓝牙设备驱动 HCI USB driver CONFIG_BT_HCIBTUSB 使用USB接口的蓝牙设备支持 HCI SDIO driver CONFIG_BT_HCIBTSDIO 使用SDIO接口的蓝牙设备支持 HCI UART driver CONFIG_BT_HCIUART 使用串口的蓝牙设备支持.此外,基于UART的蓝牙PCMCIA和CF设备也需要此模块的支持. UART (H4) protocol support CONFIG_BT_HCIUART_H4 大多数使用UART接口的蓝牙设备(包括PCMCIA和CF卡)都使用这个协议. BCSP protocol support CONFIG_BT_HCIUART_BCSP 基于CSR(Cambridge Silicon Radio)公司的BlueCore系列芯片的蓝牙设备(包括PCMCIA和CF卡)支持 Atheros AR300x serial support CONFIG_BT_HCIUART_ATH3K 基于Atheros AR300x系列芯片的蓝牙设备支持 HCILL protocol support CONFIG_BT_HCIUART_LL 基于Texas Instruments公司的BRF芯片的蓝牙设备支持 Three-wire UART (H5) protocol support CONFIG_BT_HCIUART_3WIRE Three-wire UART (H5) 协议假定UART通信可能存在各种错误,从而使得CTS/RTS引脚线变得可有可无. 看不懂就可以不选. HCI VHCI (Virtual HCI device) driver CONFIG_BT_HCIVHCI 模拟蓝牙设备支持.主要用于开发 {大多数蓝牙设备并不需要特定的独立驱动,此处省略的独立驱动仅是为了驱动那些不严格遵守蓝牙规范的芯片} RxRPC session socketsCONFIG_AF_RXRPCRxRPC会话套接字支持(仅包括传输部分,不含表示部分).CONFIG_AFS_FS依赖于它. 不确定的选"N".详情参见"Documentation/networking/rxrpc.txt"文档.WirelessCONFIG_WIRELESS无线网络支持. cfg80211 - wireless configuration API CONFIG_CFG80211 cfg80211是Linux无线局域网(802.11)配置接口,是使用WiFi的前提. 注意:"WiFi"是一个无线网路通信技术的品牌,由WiFi联盟所持有. 目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性. 现时一般人会把WiFi及IEEE 802.11混为一谈,甚至把WiFi等同于无线网路 (WiFi只是无线网络的一种). nl80211 testmode command CONFIG_NL80211_TESTMODE 仅供调试和特殊目的使用. enable developer warnings CONFIG_CFG80211_DEVELOPER_WARNINGS 仅供调试开发使用 cfg80211 regulatory debugging CONFIG_CFG80211_REG_DEBUG 仅供调试开发使用 cfg80211 certification onus CONFIG_CFG80211_CERTIFICATION_ONUS 仅在你确实明白此项含义的情况下,才考虑选"Y",否则请选"N". enable powersave by default CONFIG_CFG80211_DEFAULT_PS 默认开启省电模式.可能会导致某些设计拙劣的网络程序掉线.建议开启. 详情参见"Documentation/power/pm_qos_interface.txt"文档. cfg80211 DebugFS entries CONFIG_CFG80211_DEBUGFS 仅供调试 use statically compiled regulatory rules database CONFIG_CFG80211_INTERNAL_REGDB 由于绝大多数发行版都含有CRDA软件包,所以绝大多数人应该选"N". 如果你确实需要选"Y",那么请认真阅读"net/wireless/db.txt"文件. cfg80211 wireless extensions compatibility CONFIG_CFG80211_WEXT 为那些老旧的用户空间程序提供兼容性,建议关闭. lib80211 debugging messages CONFIG_LIB80211_DEBUG 仅供调试 Generic IEEE 802.11 Networking Stack (mac80211) CONFIG_MAC80211 独立于硬件的通用IEEE 802.11协议栈模块(mac80211).它是驱动开发者用来编写softMAC无线设备驱动的框架, softMAC设备允许用软件实现帧的管理(包括解析和产生80211无线帧), 从而让系统能更好的控制硬件,现在大多数的无线网卡都是softMAC设备. 不确定的选"Y". PID controller based rate control algorithm CONFIG_MAC80211_RC_PID 基于比例-积分-微分控制器(PID controller)的发送速率(TX rate)控制算法.用于CONFIG_MAC80211模块.不确定的选"N". Minstrel CONFIG_MAC80211_RC_MINSTREL minstrel发送速率(TX rate)控制算法.用于CONFIG_MAC80211模块. 这是首选的算法,不确定的选"Y". Minstrel 802.11n support CONFIG_MAC80211_RC_MINSTREL_HT minstrel_ht发送速率(TX rate)控制算法.适用于802.11n规范.不确定的选"Y". Default rate control algorithm 默认发送速率(TX rate)控制算法.相当于mac80211模块"ieee80211_default_rc_algo"参数的值. 建议选择"Minstrel"算法. Enable mac80211 mesh networking (pre-802.11s) support CONFIG_MAC80211_MESH 802.11s草案是无线网状网络(Mesh Networking)的延伸与增补标准(amendment). 它扩展了IEEE 802.11 MAC(介质访问控制)标准,定义了利用自我组态的多点跳跃拓朴 (multi-hop topologies),进行无线感知(radio-aware metrics), 以支援广播/组播/单播传送网络封包的架构与协定.不确定的选"N". Enable LED triggers CONFIG_MAC80211_LEDS 允许在接受/发送数据时触发无线网卡的LED灯闪烁. Export mac80211 internals in DebugFS CONFIG_MAC80211_DEBUGFS 在DebugFS中显示mac80211模块内部状态的扩展信息,仅用于调试目的. Trace all mac80211 debug messages CONFIG_MAC80211_MESSAGE_TRACING 跟踪所有mac80211模块的调试信息,仅用于调试目的. Select mac80211 debugging features CONFIG_MAC80211_DEBUG_MENU 仅供调试 WiMAX Wireless Broadband supportCONFIG_WIMAXWiMAX(IEEE 802.16)协议支持.随着2010年英特尔放弃WiMAX以及LTE在4G市场成了唯一的主流标准, WiMAX的电信运营商也逐渐向LTE转移,WiMAX论坛也于2012年将TD-LTE纳入WiMAX2.1规范, 一些WiMAX运营商也开始将设备升级为TD-LTE. WiMAX debug level CONFIG_WIMAX_DEBUG_LEVEL 设置允许使用的最大调试信息详细等级,推荐使用默认值"8", 设为"0"表示允许使用所有调试信息.运行时默认禁止使用调试信息, 但可通过sysfs文件系统中的debug-levels文件开启调试信息. RF switch subsystem supportCONFIG_RFKILL为了节约电力,很多无线网卡和蓝牙设备都有内置的射频开关(RF switche)用于开启和关闭设备(通过rfkill命令). 建议选"Y".更多详情参见"Documentation/rfkill.txt"文档 RF switch input support CONFIG_RFKILL_INPUT 这是个反对使用的特性,一般情况下建议关闭. 但是某些笔记本无线网卡的开关是由按钮控制的,在这些笔记本上建议开启. Generic rfkill regulator driver CONFIG_RFKILL_REGULATOR 通用射频开关驱动.这是最通用的驱动,其射频开关连接在电压调节器(voltage regulator)上. 依赖于CONFIG_REGULATOR框架. GPIO RFKILL driver CONFIG_RFKILL_GPIO 通用GPIO射频开关驱动.仅用于嵌入式环境,其射频开关连接在GPIO总线上, 比如NVIDIA的Tegra和三星的Exynos 4智能手机SoC芯片. Plan 9 Resource Sharing Support (9P2000)CONFIG_NET_9P实验性的支持Plan 9的9P2000协议.CAIF supportCONFIG_CAIF除非你为Android/MeeGo系统编译内核,并且需要使用PF_CAIF类型的socket,否则请选"N".Ceph core libraryCONFIG_CEPH_LIB仅在你需要使用Ceph分布式文件系统,或者rados块设备(rbd)时选"Y".否则应选"N".NFC subsystem supportCONFIG_NFCNFC(近场通信)子系统.这些设备主要用于智能手机之类的嵌入式领域.