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

sysctl命令怎麼修改內核參數

  RedHat向管理員提供了非常好的方法,使我們可以在系統運行時更改內核參數,而不需要重新引導系統。這是通過/proc虛擬文件系統實 現的。/proc/sys目錄下存放著大多數的內核參數,並且設計成可以在系統運行的同時進行更改。那麼sysctl命令怎麼修改內核參數呢?小編為大家分享了sysctl命令修改內核參數的方法,下面大家跟著學習啦小編一起來了解一下吧。

  sysctl命令修改內核參數方法

  sysctl配置與顯示在/proc/sys目錄中的內核參數.可以用sysctl來設置或重新設置聯網功能,如IP轉發、IP碎片去除以及源路由檢查等。用戶只需要編輯/etc/sysctl.conf文件,即可手工或自動執行由sysctl控制的功能。

  命令格式:

  sysctl [-n] [-e] -w variable=value

  sysctl [-n] [-e] -p (default /etc/sysctl.conf)

  sysctl [-n] [-e] -a

  常用參數的意義:

  -w 臨時改變某個指定參數的值,如

  sysctl -w net.ipv4.ip_forward=1

  -a 顯示所有的系統參數

  -p 從指定的文件加載系統參數,如不指定即從/etc/sysctl.conf中加載

  如果僅僅是想臨時改變某個系統參數的值,可以用兩種方法來實現,例如想啟用IP路由轉發功能:

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

  2) #sysctl -w net.ipv4.ip_forward=1

  以上兩種方法都可能立即開啟路由功能,但如果系統重啟,或執行了

  # service network restart

  命令,所設置的值即會丟失,如果想永久保留配置,可以修改/etc/sysctl.conf文件

  將 net.ipv4.ip_forward=0改為net.ipv4.ip_forward=1

  常見用法

  修改(配置)方法有三種

  臨時生效2種

  代碼如下:

  # echo 1 > /proc/sys/net/ipv4/ip_forward // 開啟路由功能

  # sysctl -w net.ipv4.ip_forward=1 // 用此選項來改變一個sysctl設置

  如果系統重啟,或執行service network restart命令,所設置的值即會丟失

  /proc目錄下的所有內容都是臨時性的, 所以重啟動系統後任何修改都會丟失。

  永久生效1種

  代碼如下:

  # vi /etc/sysctl.conf

  修改net.ipv4.ip_forward=0的值為1 // 打開數據包的轉發功能

  代碼如下:

  # sysctl -p /etc/sysctl.conf // 重新載入/etc/sysctl.conf文件,如-p後未指定路徑,則載入/etc/sysctl.conf

  指定的值在系統進入多用戶模式之後被設定。並不是所有的變量都可以在這個模式下設定。

  sysctl 變量的設置通常是字符串、數字或者布爾型。 (布爾型用 1 來表示'yes',用 0 來表示'no')。

  代碼如下:

  [root@Firewall sys]# sysctl -a //查看所有參數

  [root@Firewall sys]# sysctl net.core.wmem_max //查看指定的參數

  net.core.wmem_max = 131071

  [root@Firewall sys]# sysctl net.core.wmem_max=256000 //修改指定的參數

  net.core.wmem_max = 256000

Copyright © Linux教程網 All Rights Reserved