新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Linux如何在系統(tǒng)運行過程中修改內(nèi)核參數(shù)

Linux如何在系統(tǒng)運行過程中修改內(nèi)核參數(shù)

作者: 時間:2016-10-08 來源:網(wǎng)絡 收藏

RedHat向管理員提供了非常好的方法,使我們可以在系統(tǒng)運行時更改內(nèi)核參數(shù),而不需要重新引導系統(tǒng)。這是通過/proc虛擬文件系統(tǒng)實現(xiàn)的。/proc/sys目錄下存放著大多數(shù)的內(nèi)核參數(shù),并且設計成可以在系統(tǒng)運行的同時進行更改。下面我們以打開內(nèi)核的 ip轉發(fā)功能為例說明在系統(tǒng)運行時修改內(nèi)核參數(shù)的兩種方法。IP轉發(fā)是指允許系統(tǒng)對來源和目的地都不是本機的數(shù)據(jù)包通過網(wǎng)絡,RedHat默認屏蔽此功能,在 需要用本機作為路由器、NAT等情況下需要開啟此功能。

本文引用地址:http://2s4d.com/article/201610/305769.htm

方法一:修改/proc下內(nèi)核參數(shù)文件內(nèi)容

直接修改內(nèi)核參數(shù)ip_forward對應在/proc下的文件/proc/sys/net/ipv4/ip_forward。用下面命令查看ip_forward文件內(nèi)容:

# cat /proc/sys/net/ipv4/ip_forward

該文件默認值0是禁止ip轉發(fā),修改為1即開啟ip轉發(fā)功能。修改命令如下:

# echo 1 >/proc/sys/net/ipv4/ip_forward

修改過后就馬上生效,即內(nèi)核已經(jīng)打開ip轉發(fā)功能。但如果系統(tǒng)重啟后則又恢復為默認值0,如果想永久打開需要通過修改/etc/sysctl.conf文件的內(nèi)容來實現(xiàn)。

方法二.修改/etc/sysctl.conf文件

默認sysctl.conf文件中有一個變量是

net.ipv4.ip_forward = 0

將后面值改為1,然后保存文件。因為每次系統(tǒng)啟動時初始化腳本/etc/rc.d/rc.sysinit會讀取/etc/sysctl.conf文件的內(nèi)容,所以修改后每次系統(tǒng)啟動時都會開啟ip轉發(fā)功能。但只是修改sysctl文件不會馬上生效,如果想使修改馬上生效可以執(zhí)行下面的命令:

# sysctl –p

在修改其他內(nèi)核參數(shù)時可以向/etc/sysctl.conf文件中添加相應變量即可,下面介紹/proc/sys下內(nèi)核文件與配置文件 sysctl.conf中變量的對應關系,由于可以修改的內(nèi)核參數(shù)都在/proc/sys目錄下,所以sysctl.conf的變量名省略了目錄的前面部 分(/proc/sys)。

將/proc/sys中的文件轉換成sysctl中的變量依據(jù)下面兩個簡單的規(guī)則:

1.去掉前面部分/proc/sys

2.將文件名中的斜杠變?yōu)辄c

這兩條規(guī)則可以將/proc/sys中的任一文件名轉換成sysctl中的變量名。

例如:

/proc/sys/net/ipv4/ip_forward =》 net.ipv4.ip_forward

/proc/sys/kernel/hostname =》 kernel.hostname

可以使用下面命令查詢所有可修改的變量名

# sysctl –a

下面例舉幾個簡單的內(nèi)核參數(shù):

1./proc/sys/kernel/shmmax

該文件指定內(nèi)核所允許的最大共享內(nèi)存段的大小。

2./proc/sys/kernel/threads-max

該文件指定內(nèi)核所能使用的線程的最大數(shù)目。

3./proc/sys/kernel/hostname

該文件允許您配置網(wǎng)絡主機名。

4./proc/sys/kernel/domainname

該文件允許您配置網(wǎng)絡域名。



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉
×

Digikey let's do
· 2025年第1期限时报名开启,5月8日截止
· Digikey助力,提供一站式免费器件支持
· 跟大佬一起 【DIY 功率监测与控制系统】