【內核】linux2.6版本內核編譯配置選項(一)

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系列協議)支持


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章