深度介紹Linux內(nèi)核是如何工作的
0
也等同于:
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
還等同于:
# echo 1 > /proc/sys/net/ipv4/ip_forward
需要注意的是,以這種方式你所做的設(shè)置改變只能影響當(dāng)前運(yùn)行的kernel的,當(dāng)reboot的時(shí)候就不再有效。如果想讓設(shè)置永久有效,將它們放置在/etc/sysctl.conf文件中。在boot time時(shí),sysctl將自動(dòng)重新確定它在此文件下找到的任何設(shè)置。
/etc/sysctl.conf下的代碼行大概是這樣的:net.ipv4.ip_forward=1
性能調(diào)優(yōu)(performance tuning)
有這樣一個(gè)說法:/proc/sys下可寫入的參數(shù)孕育了整個(gè)Linux性能調(diào)優(yōu)的亞文化。我個(gè)人覺得這種說法有點(diǎn)過夸,但這里會(huì)有幾個(gè)你確實(shí)很想一試的例子:Oracle 10g的安裝說明(www.oracle.com/technology/obe/obe10gdb/install/linuxpreinst/linuxpreinst.htm)要求你設(shè)置一組參數(shù),包括:kernel.shmmax=2147483648 這將公用存儲(chǔ)器的大小設(shè)置為2GB。(公用存儲(chǔ)器是處理期內(nèi)的通信機(jī)制,允許存儲(chǔ)單元在多個(gè)進(jìn)程的地址空間內(nèi)同時(shí)可用)
IBM 'Redpaper'在Linux性能和調(diào)優(yōu)方面的說明(www.redbooks.ibm.com/abstracts/redp4285.html)在調(diào)教/proc/sys下的參數(shù)方面給出了不少建議,包括:vm.swappiness=100 這個(gè)參數(shù)控制著存儲(chǔ)頁如何被交換到磁盤。
一些參數(shù)可以被設(shè)置從而提高安全性,如net.ipv4.icmp_echo_ignore_broadcasts=1 它告訴kernel不必響應(yīng)ICMP請(qǐng)求,從而使得你的網(wǎng)絡(luò)免受類如Smurf攻擊之類的拒絕服務(wù)器(denial-of-service)型攻擊。
net.ipv4.conf.all.rp_filter=1 則是告訴kernel加強(qiáng)入站過濾(ingress filtering)和出站過濾(egress filtering)
那么有沒有一個(gè)說明能涵蓋這所有的參數(shù)?好吧,這有一行命令:# sysctl -a 它將展示所有的參數(shù)名字和當(dāng)前值。列表很長(zhǎng),但是你無法知道這些參數(shù)是做什么的。另外比較有用的參考是Red Hat Enterprise Linux Reference Guide,對(duì)此有整章節(jié)的描述,你可以從www.redhat.com/docs/manuals/enterprise上下載。
評(píng)論