'\" t .TH "SYSCTL\&.D" "5" "" "systemd 231" "sysctl.d" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" sysctl.d \- 在啟動時配置核心引數 .SH "SYNOPSIS" .PP /etc/sysctl\&.d/*\&.conf .PP /run/sysctl\&.d/*\&.conf .PP /usr/lib/sysctl\&.d/*\&.conf .SH "描述" .PP 在系統啟動時, \fBsystemd-sysctl.service\fR(8) 根據上面列出的配置檔案設定 \m[blue]\fBsysctl(8)\fR\m[]\&\s-2\u[1]\d\s+2 核心引數。 .SH "配置檔案格式" .PP 配置檔案的格式是 一系列"KEY=VALUE"行(每行一對)。 空行以及以 "#" 或 ";" 開頭的行都將被忽略。 .PP 注意,在KEY內部,可以使用 "/" 或 "\&." 作為分隔符。 如果第一個分隔符是 "/" , 那麼其餘的分隔符將保持原樣; 如果第一個分隔符是 "\&." ,那麼互換所有的 "/" 與 "\&." ; 例如,"kernel\&.domainname=foo" 等價於 "kernel/domainname=foo" ,都會將 "foo" 寫入 /proc/sys/kernel/domainname 引數中。 同樣的,"net\&.ipv4\&.conf\&.enp3s0/200\&.forwarding" 等價於 "net/ipv4/conf/enp3s0\&.200/forwarding" , 都是指 /proc/sys/net/ipv4/conf/enp3s0\&.200/forwarding 引數。 .PP sysctl\&.d/ 中的設定將在系統啟動的早期被應用。 針對網路介面的配置, 則會在對應的網路接口出現的時候被應用, 具體說來就是 net\&.ipv4\&.conf\&.*, net\&.ipv6\&.conf\&.*, net\&.ipv4\&.neigh\&.*, net\&.ipv6\&.neigh\&.* 引數。 .PP 許多 sysctl 引數僅在載入相應的核心模組之後才可用。 因為核心模組是按需動態載入的 (例如在插入新硬體或啟動網路時), 所以在系統啟動早期執行的 \fBsystemd-sysctl.service\fR(8) 無法設定那些依賴於特定核心模組的引數。 對於這些引數, 首選的方法是透過 \fBudev\fR(7) 規則來設定, 次選的方法是將這些模組新增到 \fBmodules-load.d\fR(5) 中, 因為 \fBmodules-load.d\fR(5) 中的模組會在執行 \fBsystemd-sysctl.service\fR(8) 前被無條件的靜態載入(參見"例子"小節)。 .SH "配置目錄及其優先順序" .PP 配置檔案依次從 /etc/, /run/, /usr/lib/ 目錄中讀取。 配置檔案的名稱必須符合 \fIfilename\fR\&.conf 格式。 對於不同目錄下的同名配置檔案,僅以優先順序最高的目錄中的那一個為準。 具體說來就是: /etc/ 的優先順序最高、 /run/ 的優先順序居中、 /usr/lib/ 的優先順序最低。 .PP 軟體包應該將自帶的配置檔案安裝在 /usr/lib/ 目錄中。 /etc/ 目錄僅供系統管理員使用。 所有的配置檔案(無論位於哪個目錄中),統一按照檔名的字典順序處理。 如果在多個配置檔案中設定了同一個選項, 那麼僅以檔名最靠後(字典順序)的那一個為準。 為了便於排序,建議給所有配置檔案 都加上兩位十進位制數字的檔名字首。 .PP 如果系統管理員想要遮蔽 /usr/lib/ 目錄中的某個配置檔案, 那麼最佳做法是在 /etc/ 目錄中 建立一個指向 /dev/null 的同名符號連結, 即可徹底遮蔽 /usr/lib/ 目錄中的同名檔案。 如果軟體包自帶的某個配置檔案位於 initrd 映象中, 那麼還必須重新生成 initrd 映象。 .SH "例子" .PP \fBExample\ \&1.\ \&設定核心YP域名\fR .PP /etc/sysctl\&.d/domain\-name\&.conf: .sp .if n \{\ .RS 4 .\} .nf kernel\&.domainname=example\&.com .fi .if n \{\ .RE .\} .PP \fBExample\ \&2.\ \&利用udev規則設定動態核心模組的引數(方法一)\fR .PP /etc/udev/rules\&.d/99\-bridge\&.rules: .sp .if n \{\ .RS 4 .\} .nf ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", \e RUN+="/usr/lib/systemd/systemd\-sysctl \-\-prefix=/net/bridge" .fi .if n \{\ .RE .\} .PP /etc/sysctl\&.d/bridge\&.conf: .sp .if n \{\ .RS 4 .\} .nf net\&.bridge\&.bridge\-nf\-call\-ip6tables = 0 net\&.bridge\&.bridge\-nf\-call\-iptables = 0 net\&.bridge\&.bridge\-nf\-call\-arptables = 0 .fi .if n \{\ .RE .\} .PP 因為此方法在載入模組的同時設定模組的引數, 所以僅在載入 br_netfilter 模組之後才能過濾橋接包, 若不想過濾橋接包, 只要不載入 br_netfilter 模組即可。 .PP \fBExample\ \&3.\ \&利用 modules\-load\&.d 目錄設定動態核心模組的引數(方法二)\fR .PP /etc/modules\-load\&.d/bridge\&.conf: .sp .if n \{\ .RS 4 .\} .nf br_netfilter .fi .if n \{\ .RE .\} .PP /etc/sysctl\&.d/bridge\&.conf: .sp .if n \{\ .RS 4 .\} .nf net\&.bridge\&.bridge\-nf\-call\-ip6tables = 0 net\&.bridge\&.bridge\-nf\-call\-iptables = 0 net\&.bridge\&.bridge\-nf\-call\-arptables = 0 .fi .if n \{\ .RE .\} .PP 因為此方法總是無條件的載入 br_netfilter 模組, 並且總是無條件的設定模組的引數, 所以總是無條件的過濾橋接包,若不想過濾橋接包, 必須主動解除安裝 br_netfilter 模組。 .SH "參見" .PP \fBsystemd\fR(1), \fBsystemd-sysctl.service\fR(8), \fBsystemd-delta\fR(1), \m[blue]\fBsysctl(8)\fR\m[]\&\s-2\u[1]\d\s+2, \fBsysctl.conf\fR(5), \fBmodprobe\fR(8) .SH "NOTES" .IP " 1." 4 sysctl(8) .RS 4 \%[set $man.base.url.for.relative.links]//man/sysctl.html .RE .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .PP 翻譯人員:金步國 .br 金步國作品集:http://www.jinbuguo.com .br .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR