sysctl命令被用于在內(nèi)核運(yùn)行時(shí)動(dòng)態(tài)地修改內(nèi)核的運(yùn)行參數(shù),可用的內(nèi)核參數(shù)在目錄/proc/sys中。它包含一些TCP/ip堆棧和虛擬內(nèi)存系統(tǒng)的高級(jí)選項(xiàng)。
語(yǔ)法:
sysctl (選項(xiàng))(參數(shù))
選項(xiàng):
-n:打印值時(shí)不打印關(guān)鍵字;
-e:忽略未知關(guān)鍵字錯(cuò)誤;
-N:僅打印名稱;
-w:當(dāng)改變sysctl設(shè)置時(shí)使用此項(xiàng);
-p:從配置文件“/etc/sysctl.conf”加載內(nèi)核參數(shù)設(shè)置;
-a:打印當(dāng)前所有可用的內(nèi)核參數(shù)變量和值;
-A:以表格方式打印當(dāng)前所有可用的內(nèi)核參數(shù)變量和值。
參數(shù):
變量=值:設(shè)置內(nèi)核參數(shù)對(duì)應(yīng)的變量值
實(shí)例
查看所有可讀變量:
sysctl -a
讀一個(gè)指定的變量,例如vm.swappiness:
[root@wangerxiao proc]# sysctl vm.swappiness
vm.swappiness = 60
要設(shè)定一個(gè)指定的變量,直接用variable=value這樣的語(yǔ)法:
[root@wangerxiao proc]# sysctl vm.swappiness=60
vm.swappiness = 60
可以使用sysctl修改系統(tǒng)變量,也可以通過(guò)編輯sysctl.conf文件來(lái)修改系統(tǒng)變量。sysctl.conf看起來(lái)很像rc.conf。它用variable=value的形式來(lái)設(shè)定值。指定的值在系統(tǒng)進(jìn)入多用戶模式之后被設(shè)定。并不是所有的變量都可以在這個(gè)模式下設(shè)定。
sysctl變量的設(shè)置通常是字符串、數(shù)字或者布爾型。(布爾型用 1 來(lái)表示'yes',用 0 來(lái)表示'no')。
sysctl -w kernel.sysrq=0
sysctl -w kernel.core_uses_pid=1
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.conf.default.rp_filter=1
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w net.ipv4.tcp_synack_retries=2
sysctl -w net.ipv4.tcp_keepalive_time=3600
sysctl -w net.ipv4.tcp_window_scaling=1
sysctl -w net.ipv4.tcp_sack=1
配置sysctl
編輯此文?:/etc/sysctl.conf
如果該文件為空,則輸入以下內(nèi)容,否則請(qǐng)根據(jù)情況自己做調(diào)整:
如果希望屏蔽別人ping你的主機(jī),則加入以下代碼:
#Disable ping requests
net.ipv4.icmp_echo_ignore_all=1
編輯完成后,執(zhí)行以下命令使配置生效:
sysctl -p
sysctl -w net.ipv4.route.flush=1