Linux 2.6.19.x 內核編譯配置選項簡介
作者:金步國
版權聲明
本文作者是一位自由軟件愛好者,所以本文雖然不是軟件,但是本着 GPL 的精神發佈。任何人都可以自由使用、轉載、複製和再分發,但必須保留作者署名,亦不得對聲明中的任何條款作任何形式的修改,也不得附加任何其它條件。您可以自由鏈接、下載、傳播此文檔,但前提是必須保證全文完整轉載,包括完整的版權信息和作譯者聲明。
其他作品
本文作者十分願意與他人共享勞動成果,如果你對我的其他翻譯作品或者技術文章有興趣,可以在如下位置查看現有作品的列表:
BUG報告,切磋與探討
由於作者水平有限,因此不能保證作品內容準確無誤,請在閱讀中自行鑑別。如果你發現了作品中的錯誤,請您來信指出,哪怕是錯別字也好,任何提高作品質量的建議我都將虛心接納。如果你願意就作品中的相關內容與我進行進一步切磋與探討,也歡迎你與我聯繫。聯繫方式:MSN: [email protected]
目錄
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系列協議)支持