Linux
sysctl 與直接寫入 /proc/*
在典型的 linux 機器上,您可以通過修改位於
/proc/*
.例如,對於
accept_dad
特定網路介面的 IPv6 參數(例如eth0
),您需要修改以下文件:/proc/sys/net/ipv6/conf/eth0/accept_dad
但是,正如我最近發現的那樣,有一個廣泛傳播的工具,
sysctl
它具有相同的目的,並且工作方式如下:sysctl -w net.ipv6.conf.eth0.accept_dad=1
我的問題是,我們什麼時候應該使用哪個工具?我的直覺告訴我,如果你知道自己在做什麼,你應該直接寫入文件,但是,如果你想要驗證而不是什麼,你應該使用
sysctl
.由於
sysctl
是我們可以直接控制的東西的另一層,我認為通過使用它,我們將自己暴露在潛在的錯誤中,否則這些錯誤可以通過直接寫入文件來避免。
sysctl
是用於讀取和修改各種核心屬性的工具。它在許多類 Unix 作業系統中都可用,不僅包括 Linux,還包括 OpenBSD 和 FreeBSD,例如。sysctl
通常可用作 shell 命令和系統呼叫。在 Linux 中,該
sysctl
機製作為procfs虛擬文件系統的一部分另外公開,位於/proc/sys
.請注意,
sysctl
系統呼叫在 Linux 中已棄用;建議/proc/sys
改用(直接或通過sysctl
shell 命令)。參考: