歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

怎麼在 Linux系統運行過程中修改內核參數

  sysctl配置與顯示在/proc/sys目錄中的內核參數.可以用sysctl來設置或重新設置聯網功能,如IP轉發、IP碎片去除以及源路由檢查等。用戶只需要編輯/etc/sysctl.conf文件,即可手工或自動執行由sysctl控制的功能。小編為大家分享了 Linux怎麼在系統運行過程中修改內核參數的方法,下面大家跟著學習啦小編一起來了解一下吧。

  Linux在系統運行過程中修改內核參數方法

  RedHat向管理員提供了非常好的方法,使我們可以在系統運行時更改內核參數,而不需要重新引導系統。這是通過/proc虛擬文件系統實 現的。/proc/sys目錄下存放著大多數的內核參數,並且設計成可以在系統運行的同時進行更改。下面我們以打開內核的 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

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

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

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

2.將文件名中的斜槓
變為點

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

  例如:

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

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

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

  # sysctl –a

  下面例舉幾個簡單的內核參數:

  1./proc/sys/kernel/shmmax

  該文件指定內核所允許的最大共享內存段的大小。

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

  該文件指定內核所能使用的線程的最大數目。

  3./proc/sys/kernel/hostname

  該文件允許您配置網絡主機名。

  4./proc/sys/kernel/domainname

  該文件允許您配置網絡域名。

  看過“ 怎麼在 Linux系統運行過程中修改內核參數 ”的人還看了:

Copyright © Linux教程網 All Rights Reserved