sysctl 與內核修改

/proc/sys目錄下存放著大多數的內核參數,并且設計成可以在系統運行的同時進行更改,不過重新啟動機器后會失效,可以通過更改/proc/sys中內核參數對應的文件/etc/sysctl.conf的內核參數來永久更改。

下面我們以打開內核的 ip轉發功能為例說明在系統運行時修改內核參數的兩種方法。IP轉發是指允許系統對來源和目的地都不是本機的數據包通過網絡,RedHat默認屏蔽此功能,在 需要用本機作為路由器、NAT等情況下需要開啟此功能。

方法一:修改/proc下內核參數文件內容

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

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

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

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

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

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

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

net.ipv4.ip_forward = 0

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

# sysctl –p



sysctl -a 是指打印內核參數

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容