版权声明
本文做者是一位自由软件爱好者,因此本文虽然不是软件,可是本着 GPL 的精神发布。任何人均可以自由使用、转载、复制和再分发,但必须保留做者署名,亦不得对声明中的任何条款做任何形式的修改,也不得附加任何其它条件。您能够自由连接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和做译者声明。html
其余做品
本文做者十分愿意与他人共享劳动成果,若是你对个人其余翻译做品或者技术文章有兴趣,能够在以下位置查看现有做品的列表:linux
BUG报告,切磋与探讨
因为做者水平有限,所以不能保证做品内容准确无误,请在阅读中自行鉴别。若是你发现了做品中的错误,请您来信指出,哪怕是错别字也好,任何提升做品质量的建议我都将虚心接纳。若是你愿意就做品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系。联系方式:MSN: csfrank122@hotmail.com算法
目录数据库
linux2.6版本内核编译配置选项(一):http://infohacker.blog.51cto.com/6751239/1203633安全
linux2.6版本内核编译配置选项(二):http://infohacker.blog.51cto.com/6751239/1203635服务器
Code maturity level options
代码成熟度选项
-
Prompt for development and/or incomplete code/drivers
-
显示尚在开发中或还没有完成的代码与驱动.除非你是测试人员或者开发者,不然请勿选择
General setup
常规设置
-
Local version - append to kernel release
-
在内核版本后面加上自定义的版本字符串(小于64字符),能够用"uname -a"命令看到
-
Automatically append version information to the version string
-
自动在版本字符串后面添加版本信息,编译时须要有perl以及git仓库支持
-
Support for paging of anonymous memory (swap)
-
使用交换分区或者交换文件来作为虚拟内存
-
System V IPC
-
System V进程间通讯(IPC)支持,许多程序须要这个功能.必选,除非你知道本身在作什么
-
-
IPC Namespaces
-
IPC命名空间支持,不肯定能够不选
-
POSIX Message Queues
-
POSIX消息队列,这是POSIX IPC中的一部分
-
BSD Process Accounting
-
将进程的统计信息写入文件的用户级系统调用,主要包括进程的建立时间/建立者/内存占用等信息
-
-
BSD Process Accounting version 3 file format
-
使用新的第三版文件格式,能够包含每一个进程的PID和其父进程的PID,可是不兼容老版本的文件格式
-
Export task/process statistics through netlink
-
经过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不一样之处在于这些统计信息在整个任务/进程生存期都是可用的
-
-
Enable per-task delay accounting
-
在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间
-
UTS Namespaces
-
UTS名字空间支持,不肯定能够不选
-
Auditing support
-
审计支持,某些内核模块(例如SELinux)须要它,只有同时选择其子项才能对系统调用进行审计
-
-
Enable system-call auditing support
-
支持对系统调用的审计
-
Kernel .config support
-
把内核的配置信息编译进内核中,之后能够经过scripts/extract-ikconfig脚原本提取这些信息
-
-
Enable access to .config through /proc/config.gz
-
容许经过/proc/config.gz访问内核的配置信息
-
Cpuset support
-
只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才须要它
-
Kernel->user space relay support (formerly relayfs)
-
在某些文件系统上(好比debugfs)提供从内核空间向用户空间传递大量数据的接口
-
Initramfs source file(s)
-
initrd已经被initramfs取代,若是你不明白这是什么意思,请保持空白
-
Optimize for size (Look out for broken compilers!)
-
编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码
-
Enable extended accounting over taskstats
-
收集额外的进程统计信息并经过taskstats接口发送到用户空间
-
Configure standard kernel features (for small systems)
-
配置标准的内核特性(为小型系统)
-
-
Enable 16-bit UID system calls
-
容许对UID系统调用进行过期的16-bit包装
-
Sysctl syscall support
-
不须要重启就能修改内核的某些参数和变量,若是你也选择了支持/proc,将能从/proc/sys存取能够影响内核行为的参数或变量
-
Load all symbols for debugging/kksymoops
-
装载全部的调试符号表信息,仅供调试时选择
-
-
Include all symbols in kallsyms
-
在kallsyms中包含内核知道的全部符号,内核将会增大300K
-
Do an extra kallsyms pass
-
除非你在kallsyms中发现了bug并须要报告这个bug才打开该选项
-
Support for hot-pluggable devices
-
支持热插拔设备,如usb与pc卡等,Udev也须要它
-
Enable support for printk
-
容许内核向终端打印字符信息,在须要诊断内核为何不能运行时选择
-
BUG() support
-
显示故障和失败条件(BUG和WARN),禁用它将可能致使隐含的错误被忽略
-
Enable ELF core dumps
-
内存转储支持,能够帮助调试ELF格式的程序
-
Enable full-sized data structures for core
-
在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减少以节约内存,可是将会下降性能
-
Enable futex support
-
快速用户空间互斥体可使线程串行化以免竞态条件,也提升了响应速度.禁用它将致使内核不能正确的运行基于glibc的程序
-
Enable eventpoll support
-
支持事件轮循的系统调用
-
Use full shmem filesystem
-
彻底使用shmem来代替ramfs.shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后能够挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多
-
Use full SLAB allocator
-
使用SLAB彻底取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用
-
Enable VM event counters for /proc/vmstat
-
容许在/proc/vmstat中包含虚拟内存事件记数器
Loadable module support
可加载模块支持
-
Enable loadable module support
-
打开可加载模块支持,若是打开它则必须经过"make modules_install"把内核模块安装在/lib/modules/中
-
-
Module unloading
-
容许卸载已经加载的模块
-
-
Forced module unloading
-
容许强制卸载正在使用中的模块(比较危险)
-
Module versioning support
-
容许使用其余内核版本的模块(可能会出问题)
-
Source checksum for all modules
-
为全部的模块校验源码,若是你不是本身编写内核模块就不须要它
-
Automatic kernel module loading
-
让内核经过运行modprobe来自动加载所须要的模块,好比能够自动解决模块的依赖关系
Block layer
块设备层
-
Enable the block layer
-
块设备支持,使用硬盘/USB/SCSI设备者必选
-
-
Support for Large Block Devices
-
仅在使用大于2TB的块设备时须要
-
Support for tracing block io actions
-
块队列IO跟踪支持,它容许用户查看在一个块设备队列上发生的全部事件,能够经过blktrace程序得到磁盘当前的详细统计数据
-
Support for Large Single Files
-
仅在可能使用大于2TB的文件时须要
-
IO Schedulers
-
IO调度器
-
-
Anticipatory I/O scheduler
-
假设一个块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用于大多数环境,特别是写入较多的环境(好比文件服务器)
-
Deadline I/O scheduler
-
使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(好比数据库)
-
CFQ I/O scheduler
-
使用QoS策略为全部任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,能够认为是上述两种调度器的折中.适用于有大量进程的多用户系统
-
Default I/O scheduler
-
默认IO调度器
Processor type and features
中央处理器(CPU)类型及特性
-
Symmetric multi-processing support
-
对称多处理器支持,若是你有多个CPU或者使用的是多核CPU就选上.此时"Enhanced Real Time Clock Support"选项必须开启,"Advanced Power Management"选项必须关闭
-
Subarchitecture Type
-
处理器的子架构,大多数人都应当选择"PC-compatible"
-
Processor family
-
处理器系列,请按照你实际使用的CPU选择
-
Generic x86 support
-
通用x86支持,若是你的CPU可以在上述"Processor family"中找到就别选
-
HPET Timer Support
-
HPET是替代8254芯片的新一代定时器,i686及以上级别的主板都支持,能够安全的选上
-
Maximum number of CPUs
-
支持的最大CPU数,每增长一个内核将增长8K体积
-
SMT (Hyperthreading) scheduler support
-
支持Intel的超线程(HT)技术
-
Multi-core scheduler support
-
针对多核CPU进行调度策略优化
-
Preemption Model
-
内核抢占模式
-
-
No Forced Preemption (Server)
-
适合服务器环境的禁止内核抢占
-
Voluntary Kernel Preemption (Desktop)
-
适合普通桌面环境的自愿内核抢占
-
Preemptible Kernel (Low-Latency Desktop)
-
适合运行实时程序的主动内核抢占
-
Preempt The Big Kernel Lock
-
能够抢占大内核锁,应用于实时要求高的场合,不适合服务器环境
-
Machine Check Exception
-
让CPU检测到系统故障时通知内核,以便内核采起相应的措施(如过热关机等)
-
-
Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4
-
每5秒检测一次这些cpu的非致命错误并纠正它们,同时记入日志
-
check for P4 thermal throttling interrupt
-
当P4的cpu过热时显示一条警告消息
-
Enable VM86 support
-
虚拟X86支持,在DOSEMU下运行16-bit程序或XFree86经过BIOS初始化某些显卡的时候才须要
-
Toshiba Laptop support
-
Toshiba笔记本模块支持
-
Dell laptop support
-
Dell笔记本模块支持
-
Enable X86 board specific fixups for reboot
-
修正某些旧x86主板的重起bug,这种主板基本绝种了
-
/dev/cpu/microcode - Intel IA32 CPU microcode support
-
使用不随Linux内核发行的IA32微代码,你必需有IA32微代码二进制文件,仅对Intel的CPU有效
-
/dev/cpu/*/msr - Model-specific register support
-
在多cpu系统中让特权CPU访问x86的MSR寄存器
-
/dev/cpu/*/cpuid - CPU information support
-
能从/dev/cpu/x/cpuid得到CPU的惟一标识符(CPUID)
-
Firmware Drivers
-
固件驱动程序
-
-
BIOS Enhanced Disk Drive calls determine boot disk
-
有些BIOS支持从某块特定的硬盘启动(若是BIOS不支持则可能没法启动),目前大多数BIOS还不支持
-
BIOS update support for DELL systems via sysfs
-
仅适用于DELL机器
-
Dell Systems Management Base Driver
-
仅适用于DELL机器
-
High Memory Support
-
最高内存支持,总内存小于等于1G的选"off",大于4G的选"64G"
-
Memory split
-
若是你不是绝对清楚本身在作什么,不要改动这个选项
-
Memory model
-
通常选"Flat Memory",其余选项涉及内存热插拔
-
64 bit Memory and IO resources
-
使用64位的内存和IO资源
-
Allocate 3rd-level pagetables from highmem
-
在内存不少(大于4G)的机器上将用户空间的页表放到高位内存区,以节约宝贵的低端内存
-
Math emulation
-
数学协处理器仿真,486DX以上的cpu就不要选它了
-
MTRR (Memory Type Range Register) support
-
打开它能够提高PCI/AGP总线上的显卡2倍以上的速度,而且能够修正某些BIOS错误
-
Boot from EFI support
-
EFI是一种可代替传统BIOS的技术(目前的Grub/LILO尚不能识别它),可是如今远未普及
-
Enable kernel irq balancing
-
让内核将irq中断平均分配给多个CPU以进行负载均衡,可是要配合irqbanlance守护进程才行
-
Use register arguments
-
使用"-mregparm=3"参数编译内核,将前3个参数以寄存器方式进行参数调用,能够生成更紧凑和高效的代码
-
Enable seccomp to safely compute untrusted bytecode
-
只有嵌入式系统能够不选
-
Timer frequency
-
内核时钟频率,桌面推荐"1000 HZ",服务器推荐"100 HZ"或"250 HZ"
-
kexec system call
-
提供kexec系统调用,能够没必要重启而切换到另外一个内核
-
kernel crash dumps
-
被kexec启动后产生内核崩溃转储
-
Physical address where the kernel is loaded
-
内核加载的物理地址,除非你知道本身在作什么,不然不要修改.在提供kexec系统调用的状况下可能要修改它
-
Support for hot-pluggable CPUs
-
对热插拔CPU提供支持
-
Compat VDSO support
-
若是Glibc版本大于等于2.3.3就不选,不然就选上
Power management options
电源管理选项
-
Power Management support
-
电源管理有APM和ACPI两种标准且不能同时使用.即便关闭该选项,X86上运行的Linux也会在空闲时发出HLT指令将CPU进入睡眠状态
-
-
Legacy Power Management API
-
传统的电源管理API,好比软关机和系统休眠等接口
-
Power Management Debug Support
-
仅供调试使用
-
Driver model /sys/devices/.../power/state files
-
内核帮助文档反对使用该选项,即将被废除
-
ACPI (Advanced Configuration and Power Interface) Support
-
必须运行acpid守护程序ACPI才能起做用.ACPI是为了取代APM而设计的,所以应该尽可能使用ACPI而不是APM
-
-
AC Adapter
-
若是你的系统能够在AC和电池之间转换就能够选
-
Battery
-
经过/proc/acpi/battery向用户提供电池状态信息,用电池的笔记本能够选
-
Button
-
守护程序捕获Power,Sleep,Lid按钮事件,并根据/proc/acpi/event作相应的动做,软件控制的poweroff须要它
-
Video
-
仅对集成在主板上的显卡提供ACPI2.0支持,且不是全部集成显卡都支持
-
Generic Hotkey
-
统一的热键驱动,建议不选
-
Fan
-
容许经过用户层的程序来对系统风扇进行控制(开,关,查询状态),支持它的硬件并很少
-
Dock
-
支持由ACPI控制的集线器(docking stations)
-
Processor
-
让ACPI处理空闲状态,并使用ACPI C2和C3处理器状态在空闲时节省电能,同时它还被cpufreq的"Performance-state drivers"选项所依赖
-
-
Thermal Zone
-
系统温度太高时能够利用ACPI thermal zone及时调整工做状态以免你的CPU被烧毁
-
ASUS/Medion Laptop Extras
-
ASUS笔记本专用,以提供额外按钮的支持,用户能够经过/proc/acpi/asus来打开或者关闭LCD的背光/调整亮度/定制LED的闪烁指示等功能
-
IBM ThinkPad Laptop Extras
-
IBM ThinkPad专用
-
Toshiba Laptop Extras
-
Toshiba笔记本专用
-
Disable ACPI for systems before Jan 1st this year
-
输入四位数的年份,在该年的1月1日前不使用ACPI的功能("0"表示一直使用)
-
Debug Statements
-
详细的ACPI调试信息,不搞开发就别选
-
Power Management Timer Support
-
这个Timer在全部ACPI兼容的平台上均可用,且不会受PM功能的影响,建议老是启用它.若是你在kernel log中看到了'many lost ticks'那就必须启用它
-
ACPI0004,PNP0A05 and PNP0A06 Container Driver
-
支持内存和CPU的热插拔
-
Smart Battery System
-
支持依赖于I2C的"智能电池".这种电池很是老旧且罕见,还与当前的ACPI标准兼容性差
-
APM (Advanced Power Management) BIOS Support
-
APM在SMP机器上必须关闭,通常来讲当前的笔记本都支持ACPI,因此应尽可能关闭该该选项
-
-
Ignore USER SUSPEND
-
只有NEC Versa M系列的笔记本才须要选择这一项
-
Enable PM at boot time
-
系统启动时即启用APM,选上这个选项能让系统自动的进行电源管理,但经常致使启动时死机
-
Make CPU Idle calls when idle
-
系统空闲时调用空闲指令(halt),只有老式的CPU才须要选它,且对于SMP系统必须关闭
-
Enable console blanking using APM
-
在屏幕空白时关闭LCD背光,事实上对全部的笔记本都无效
-
RTC stores time in GMT
-
将硬件时钟应该设为格林威治时间,不然视为本地时间.建议你使用GMT,这样你无须为时区的改变而担忧
-
Allow interrupts during APM BIOS calls
-
容许APM的BIOS调用时中断,IBM Thinkpad的一些新机器须要这项.若是休眠时挂机(包括睡下去就醒不来),能够试试它
-
Use real mode APM BIOS call to power off
-
此驱动为某些有Bug的BIOS准备,若是你的系统不能正常关机或关机时崩溃,能够试试它
-
CPU Frequency scaling
-
容许动态改变CPU主频,达到省电和降温的目的,必须同时启用下面的一种governor才行
-
-
Enable CPUfreq debugging
-
容许对CPUfreq进行调试
-
CPU frequency translation statistics
-
经过sysfs文件系统输出CPU频率变换的统计信息
-
-
CPU frequency translation statistics details
-
输出详细的CPU频率变换统计信息
-
Default CPUFreq governor
-
默认的CPU频率调节器
-
'performance' governor
-
'性能'优先,静态的将频率设置为cpu支持的最高频率
-
'powersave' governor
-
'节能'优先,静态的将频率设置为cpu支持的最低频率
-
'userspace' governor for userspace frequency scaling
-
既容许手动调整cpu频率,也容许用户空间的程序动态的调整cpu频率(须要额外的调频软件,好比cpufreqd)
-
'ondemand' cpufreq policy governor
-
'当即响应',周期性的考察CPU负载并自动的动态调整cpu频率(不须要额外的调频软件),适合台式机
-
'conservative' cpufreq governor
-
'保守',和'ondemand'类似,可是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/AMD64环境
-
ACPI Processor P-States driver
-
将ACPI2.0的处理器性能状态报告给CPUFreq processor drivers以决定如何调整频率,该选项依赖于ACPI->Processor
-
{省略的部分请按照本身实际使用的CPU选择}
-
/proc/acpi/processor/../performance interface
-
内核帮助文档反对使用该选项,即将被废除
-
Relaxed speedstep capability checks
-
放松对系统的speedstep兼容性检查,仅在某些老旧的Intel系统上须要打开
Bus options (PCI, PCMCIA, EISA, MCA, ISA)
总线选项
-
PCI support
-
PCI支持,若是使用了PCI或PCI Express设备就必选
-
-
PCI access mode
-
PCI访问模式,强列建议选"Any"(系统将优先使用"MMConfig",而后使用"BIOS",最后使用"Direct"检测PCI设备)
-
PCI Express support
-
PCI Express支持(目前主要用于显卡和千兆网卡)
-
-
PCI Express Hotplug driver
-
若是你的主板和设备都支持PCI Express热插拔就能够选上
-
-
Use polling mechanism for hot-plug events
-
对热插拔事件采用轮询机制,仅用于测试目的
-
Root Port Advanced Error Reporting support
-
由PCI Express AER驱动程序处理发送到Root Port的错误信息
-
Message Signaled Interrupts (MSI and MSI-X)
-
PCI Express支持两类中断:INTx使用传统的IRQ中断,能够与现行的PCI总线的驱动程序和操做系统兼容;MSI则是经过inbound Memory Write触发和发送中断,更适合多CPU系统.可使用"pci=nomsi"内核引导参数关闭MSI
-
PCI Debugging
-
将PCI调试信息输出到系统日志里
-
Interrupts on hypertransport devices
-
容许本地的hypertransport设备使用中断
-
ISA support
-
如今基本上没有ISA的设备了,若是你有就选吧
-
MCA support
-
微通道总线,老旧的IBM的台式机和笔记本上可能会有这种总线
-
NatSemi SCx200 support
-
在使用AMD Geode处理器的机器上才可能有
-
PCCARD (PCMCIA/CardBus) support
-
PCMCIA卡(主要用于笔记本)支持
-
-
Enable PCCARD debugging
-
仅供调试
-
16-bit PCMCIA support
-
一些老的PCMCIA卡使用16位的CardBus
-
32-bit CardBus support
-
当前的PCMCIA卡基本上都是32位的CardBus
-
CardBus yenta-compatible bridge support
-
使用PCMCIA卡的基本上都须要选择这一项,子项请按照本身实际使用的PCMCIA卡选择
-
{省略的部分请按照本身实际使用的PCMCIA卡选择}
-
PCI Hotplug Support
-
PCI热插拔支持,若是你有这样的设备就到子项中去选吧
Executable file formats
可执行文件格式
-
Kernel support for ELF binaries
-
ELF是开放平台下最经常使用的二进制文件格式,支持动态链接,支持不一样的硬件平台.除非你知道本身在作什么,不然必选
-
Kernel support for a.out and ECOFF binaries
-
早期UNIX系统的可执行文件格式,目前已经被ELF格式取代
-
Kernel support for MISC binaries
-
容许插入二进制的封装层到内核中,使用Java,.NET,Python,Lisp等语言编写的程序时须要它
Networking
网络
-
Networking options
-
网络选项
-
-
Network packet debugging
-
在调试不合格的包时加上额外的附加信息,但在遇到Dos***时你可能会被日志淹没
-
Packet socket
-
这种Socket可让应用程序(好比tcpdump,iptables)直接与网络设备通信,而不经过内核中的其它中介协议
-
-
Packet socket: mmapped IO
-
让Packet socket驱动程序使用IO映射机制以使链接速度更快
-
Unix domain sockets
-
一种仅运行于本机上的效率高于TCP/IP的Socket,简称Unix socket.许多程序都使用它在操做系统内部进行进程间通讯(IPC),好比X Window和syslog
-
Transformation user configuration interface
-
为IPsec(可在ip层加密)之类的工具提供XFRM用户配置接口支持
-
Transformation sub policy support
-
XFRM子策略支持,仅供开发者使用
-
PF_KEY sockets
-
用于可信任的密钥管理程序和操做系统内核内部的密钥管理进行通讯,IPsec依赖于它
-
TCP/IP networking
-
TCP/IP协议固然要选
-
-
IP: multicasting
-
群组广播,彷佛与网格计算有关,仅在使用MBONE的时候才须要
-
IP: advanced router
-
高级路由,若是想作一个路由器就选吧
-
IP: policy routing
-
策略路由
-
IP: equal cost multipath
-
用于路由的基于目的地址的负载均衡
-
IP: verbose route monitoring
-
显示冗余的路由监控信息
-
IP: kernel level autoconfiguration
-
在内核启动时自动配置ip地址/路由表等,须要从网络启动的无盘工做站才须要这个东西
-
IP: tunneling
-
IP隧道,将一个IP报文封装在另外一个IP报文内的技术
-
IP: GRE tunnels over IP
-
基于IP的GRE(通用路由封装)隧道
-
IP: multicast routing
-
多重传播路由
-
IP: ARP daemon support
-
这东西尚处于试验阶段就已经被废弃了
-
IP: TCP syncookie support
-
抵抗SYN flood***的好东西,要启用它必须同时启用/proc文件系统和"Sysctl support",而后在系统启动并挂载了/proc以后执行"echo 1 >/proc/sys/net/ipv4/tcp_syncookies"命令
-
IP: AH transformation
-
IPsec验证头(AH)实现了数据发送方的验证处理,可确保数据既对于未经验证的站点不可用也不能在路由过程当中更改
-
IP: ESP transformation
-
IPsec封闭安全负载(ESP)实现了发送方的验证处理和数据加密处理,用以确保数据不会被拦截/查看或复制
-
IP: IPComp transformation
-
IPComp(IP静荷载压缩协议),用于支持IPsec
-
IP: IPsec transport mode
-
IPsec传输模式,经常使用于对等通讯,用以提供内网安全.数据包通过了加密但IP头没有加密,所以任何标准设备或软件均可查看和使用IP头
-
IP: IPsec tunnel mode
-
IPsec隧道模式,用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已通过加密处理且分配有新的ESP头/IP头和验证尾,从而可以隐藏受保护站点的拓扑结构
-
IP: IPsec BEET mode
-
IPsec BEET模式
-
INET: socket monitoring interface
-
socket监视接口,一些Linux本地工具(如:包含ss的iproute2)须要使用它
-
TCP: advanced congestion control
-
高级拥塞控制,若是没有特殊需求(好比无线网络)就别选了,内核会自动将默认的拥塞控制设为"Cubic"并将"Reno"做为候补
-
IP: Virtual Server Configuration
-
IP虚拟服务器容许你基于多台物理机器构建一台高性能的虚拟服务器,不玩集群就别选了
-
The IPv6 protocol
-
你要是须要IPv6就选吧
-
NetLabel subsystem support
-
NetLabel子系统为诸如CIPSO与RIPSO之类可以在分组信息上添加标签的协议提供支持,若是你看不懂就别选了
-
Security Marking
-
对网络包进行安全标记,相似于nfmark,但主要是为安全目的而设计,若是你不明白的话就别选
-
Network packet filtering (replaces ipchains)
-
Netfilter能够对数据包进行过滤和修改,能够做为防火墙("packet filter"或"proxy-based")或网关(NAT)或代理(proxy)或网桥使用.选中此选项后必须将"Fast switching"关闭,不然将前功尽弃
-
-
Network packet filtering debugging
-
仅供开发者调试Netfilter使用
-
Bridged IP/ARP packets filtering
-
若是你但愿使用一个针对桥接的防火墙就打开它
-
Core Netfilter Configuration
-
核心Netfilter配置(当包流过Chain时若是match某个规则那么将由该规则的target来处理,不然将由同一个Chain中的下一个规则进行匹配,若不match全部规则那么最终将由该Chain的policy进行处理)
-
-
Netfilter netlink interface
-
容许Netfilter在与用户空间通讯时使用新的netlink接口.netlink Socket是Linux用户态与内核态交流的主要方法之一,且愈来愈被重视.
-
-
Netfilter NFQUEUE over NFNETLINK interface
-
经过NFNETLINK接口对包进行排队
-
Netfilter LOG over NFNETLINK interface
-
经过NFNETLINK接口对包记录.该选项废弃了ipt_ULOG和ebg_ulog机制,并打算在未来废弃基于syslog的ipt_LOG和ip6t_LOG模块
-
Layer 3 Independent Connection tracking
-
独立于第三层的连接跟踪,经过广义化的ip_conntrack支持其它非IP协议的第三层协议
-
Netfilter Xtables support
-
若是你打算使用ip_tables,ip6_tables,arp_tables之一就必须选上
-
-
"CLASSIFY" target support
-
容许为包设置优先级,一些排队规则(atm,cbq,dsmark,pfifo_fast,htb,prio)须要使用它
-
"CONNMARK" target support
-
相似于"MARK",但影响的是链接标记的值
-
"DSCP" target support
-
容许对ip包头部的DSCP(Differentiated Services Codepoint)字段进行修改,该字段经常使用于Qos
-
"MARK" target support
-
容许对包进行标记(一般配合ip命令使用),这样就能够改变路由策略或者被其它子系统用来改变其行为
-
"NFQUEUE" target Support
-
用于替代老旧的QUEUE(iptables内建的target之一),由于NFQUEUE能支持最多65535个队列,而QUEUE只能支持一个
-
"NOTRACK" target support
-
容许规则指定哪些包不进入连接跟踪/NAT子系统
-
"SECMARK" target support
-
容许对包进行安全标记,用于安全子系统
-
"CONNSECMARK" target support
-
针对连接进行安全标记,同时还会将链接上的标记还原到包上(若是连接中的包还没有进行安全标记),一般与SECMARK target联合使用
-
"comment" match support
-
容许你在iptables规则集中加入注释
-
"connbytes" per-connection counter match support
-
容许针对单个链接内部每一个方向(进/出)匹配已经传送的字节数/包数
-
"connmark" connection mark match support
-
容许针对每一个会话匹配先前由"CONNMARK"设置的标记值
-
"conntrack" connection tracking match support
-
链接跟踪匹配,是"state"的超集,它容许额外的连接跟踪信息,在须要设置一些复杂的规则(好比网关)时颇有用
-
"DCCP" protocol match support
-
DCCP是打算取代UDP的新传输协议,它在UDP的基础上增长了流控和拥塞控制机制,面向实时业务
-
"DSCP" match support
-
容许对IP包头的DSCP字段进行匹配
-
"ESP" match support
-
容许对IPSec包中的ESP头进行匹配,使用IPsec的话就选上吧
-
"helper" match support
-
加载特定协议的链接跟踪辅助模块,由该模块过滤所跟踪的链接类型的包,好比ip_conntrack_ftp模块
-
"length" match support
-
容许对包的长度进行匹配
-
"limit" match support
-
容许根据包的进出速率进行规则匹配,常和"LOG target"配合使用以抵抗某些Dos***
-
"mac" address match support
-
容许根据以太网的MAC进行匹配,经常使用于无线网络环境
-
"mark" match support
-
容许对先前由"MARK"标记的特定标记值进行匹配
-
IPsec "policy" match support
-
使用IPsec就选上吧
-
Multiple port match support
-
容许对TCP或UDP包同时匹配多个端口(一般状况下只能匹配一个端口)
-
"physdev" match support
-
容许对到达的或将要离开的物理桥端口进行匹配
-
"pkttype" packet type match support
-
容许对封包目的地址类别(广播/群播/直播)进行匹配
-
"quota" match support
-
容许对总字节数的限额值进行匹配
-
"realm" match support
-
容许对iptables中的路由子系统中的realm值进行匹配
-
"sctp" protocol match support
-
流控制传输协议(SCTP),十年之后也许可以普及的东西
-
"state" match support
-
这是对包进行分类的有力工具,它容许利用链接跟踪信息对链接中处于特定状态的包进行匹配
-
"statistic" match support
-
容许根据一个给定的百分率对包进行周期性的或随机性的匹配
-
"string" match support
-
容许根据包所承载的数据中包含的特定字符串进行匹配
-
"tcpmss" match support
-
容许根据TCP SYN包头中的MSS(最大分段长度)选项的值进行匹配
-
IP: Netfilter Configuration
-
针对IPv4的Netfilter配置
-
-
Connection tracking (required for masq/NAT)
-
连接跟踪.可用于报文假装或地址转换,也可用于加强包过滤能力
-
-
Connection tracking flow accounting
-
容许针对每一个链接记录已经传送的字节/包数,经常使用于connbytes match
-
Connection mark tracking support
-
容许对链接进行标记,与针对单独的包进行标记的不一样之处在于它是针对链接流的.CONNMARK target和connmark match须要它的支持
-
Connection tracking security mark support
-
容许对链接进行安全标记,一般这些标记包(SECMARK)复制到其所属链接(CONNSECMARK),再从链接复制到其关联的包(SECMARK)
-
Connection tracking events
-
链接跟踪事件支持.若是启用这个选项,链接跟踪代码将提供一个notifier链,它能够被其它内核代码用来获知链接跟踪状态的改变
-
Connection tracking netlink interface
-
支持基于netlink的用户空间接口
-
SCTP protocol connection tracking support
-
SCTP是IP网面向多媒体通讯的新一代的流控制传输协议
-
FTP protocol support
-
FTP协议
-
IRC protocol support
-
IRC协议是一种用来实时聊天协议,用过mIRC的人应当不陌生
-
NetBIOS name service protocol support
-
NetBIOS名字服务协议
-
TFTP protocol support
-
TFTP是基于UDP的比FTP简单的文件传输协议
-
Amanda backup protocol support
-
Amanda备份协议
-
PPTP protocol support
-
点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术,ADSL用户对它应该很熟悉
-
H.323 protocol support
-
ITU-T提出的用于IP电话的协议
-
SIP protocol support
-
IETE提出的用于IP电话的协议
-
IP Userspace queueing via NETLINK
-
已废弃
-
IP tables support (required for filtering/masq/NAT)
-
要用iptables就确定要选上
-
-
IP range match support
-
容许对ip地址的范围进行匹配
-
TOS match support
-
容许对ip包头的TOS(Type Of Service)字段进行匹配
-
recent match support
-
能够建立一个或多个刚刚使用过的ip地址列表,而后根据这些列表进行匹配
-
ECN match support
-
容许对TCP/IP包头的ECN(Explicit Congestion Notification)字段进行匹配.ECN是一种显式拥塞通知技术,它不但要求路由器支持并且要求端到端主机的支持,其基本思想是当路由器发生早期拥塞时不是丢弃包而是尽可能对包进行标记,接收方接到带有ECN提示的包时,通知发送方网络即将发生拥塞,也就是它经过对包的标记提示TCP源即将发生拥塞,从而引起拥塞避免算法
-
AH match support
-
容许对IPSec包头的AH字段进行匹配
-
TTL match support
-
容许对ip包头的TTL(生存期)字段进行匹配
-
Owner match support
-
容许对本地生成的包按照其宿主(user,group,process,session)进行匹配
-
address type match support
-
容许对地址类型(单播,本地,广播)进行匹配
-
hashlimit match support
-
是limit的升级,它基于你选择的ip地址与/或端口动态的建立以limit为桶(bucket)的哈希表.它能够建立诸如"为每一个特定的目标IP分配10kpps"或"容许每一个特定的源IP分配500pps"之类的规则
-
Packet filtering
-
定义filter表以容许对包进行过滤
-
-
REJECT target support
-
容许返回一个ICMP错误而不是简单的丢弃包
-
LOG target support
-
容许将符合条件的包头信息经过syslog进行记录
-
ULOG target support
-
透过netlink socket将符合条件的封包交给用户空间的ulogd守护进程.反对使用该选项,由于它已经被NETFILTER_NETLINK_LOG代替
-
TCPMSS target support
-
容许修改TCP包头中的MSS(最大分段长度)选项值
-
Full NAT
-
容许进行假装/端口转发以及其它的NAT功能,仅在你须要使用iptables中的nat表时才须要选择
-
Packet mangling
-
在iptables中启用mangle表以便对包进行各类修改,经常使用于改变包的路由
-
raw table support (required for NOTRACK/TRACE)
-
在iptables中添加一个'raw'表,该表在netfilter框架中很是靠前,并在PREROUTING和OUTPUT链上有钩子,从而能够对收到的数据包在链接跟踪前进行处理
-
ARP tables support
-
ARP表支持.只有在局域网中才有ARP欺骗问题,另外路由器也会遭到ARP欺骗
-
-
ARP packet filtering
-
ARP包过滤.对于进入和离开本地的ARP包定义一个filter表,在桥接的状况下还能够应用于被转发ARP包
-
ARP payload mangling
-
容许对ARP包的荷载部分进行修改,好比修改源和目标物理地址
-
IPv6: Netfilter Configuration
-
针对IPv6的Netfilter配置,须要的话能够参考前面IPv4的Netfilter配置进行选择
-
DECnet: Netfilter Configuration
-
针对DECnet的Netfilter配置
-
Bridge: Netfilter Configuration
-
针对桥接的Netfilter配置
-
DCCP Configuration
-
数据报拥塞控制协议在UDP的基础上增长了流控和拥塞控制机制,使数据报协议可以更好地用于流媒体业务的传输
-
SCTP Configuration
-
流控制传输协议是一种新兴的传输层协议.TCP协议一次只能链接一个IP地址而在SCTP协议一次能够链接多个IP地址且能够自动平衡网络负载,一旦某一个IP地址失效会自动将网络负载转移到其余IP地址上
-
TIPC Configuration
-
透明内部进程间通讯协议,以共享内存为基础实现任务和资源的调度,专门用于内部集群通讯
-
Asynchronous Transfer Mode (ATM)
-
异步传输模式(ATM)支持
-
802.1d Ethernet Bridging
-
802.1d以太网桥
-
802.1Q VLAN Support
-
802.1Q虚拟局域网
-
DECnet Support
-
DECnet是一种很生僻的协议
-
ANSI/IEEE 802.2 LLC type 2 Support
-
看不懂能够不选
-
The IPX protocol
-
IPX协议
-
Appletalk protocol support
-
与Mac机器通讯的协议
-
CCITT X.25 Packet Layer
-
大约没人须要这东西
-
LAPB Data Link Driver
-
大约没人须要这东西
-
Acorn Econet/AUN protocols
-
一种被Acorn计算机使用的又老又慢的协议
-
WAN router
-
广域网路由
-
QoS and/or fair queueing
-
若是你须要Qos或公平队列就选吧
-
Network testing
-
网络测试,仅供调试使用
-
Amateur Radio support
-
业余无线电支持
-
IrDA (infrared) subsystem support
-
红外线支持,好比无线鼠标或无线键盘
-
Bluetooth subsystem support
-
蓝牙支持
-
Generic IEEE 802.11 Networking Stack
-
通用无线局域网(IEEE 802.11系列协议)支持