版權聲明
本文做者是一位自由軟件愛好者,因此本文雖然不是軟件,可是本着 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系列協議)支持