'\" t .TH "NSS\-MYHOSTNAME" "8" "" "systemd 231" "nss-myhostname" .\" ----------------------------------------------------------------- .\" * 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" nss-myhostname, libnss_myhostname.so.2 \- 爲本地配置的系統主機名提供解析功能 .SH "SYNOPSIS" .PP libnss_myhostname\&.so\&.2 .SH "描述" .PP \fBnss\-myhostname\fR 是一個 \fBglibc\fR(GNU C Library) NSS(Name Service Switch) 插件, 提供瞭解析本地配置的系統主機名的功能。 所謂"本地配置的系統主機名"其實就是 \fBgethostname\fR(2) 函數的返回值。 該模塊的解析規則如下: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 本機的主機名 將會被解析爲所有本地IP地址,並按照他們所屬的 scope 排序。 如果 scope 不存在,則會被解析爲本地迴環接口上的 IPv4 127\&.0\&.0\&.2 以及 IPv6 ::1 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "localhost" 與 "localhost\&.localdomain" 以及所有以 "\&.localhost" 或 "\&.localhost\&.localdomain" 結尾的主機名, 都會被解析爲 127\&.0\&.0\&.1 與 ::1 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} "gateway" 會被 解析爲當前所有的默認網關地址, 並按照地址的數字順序排序。 這樣就爲當前網關分配了一個固定的主機名, 從而可以讓應用程序在不關心網絡配置的情況下,直接引用網關。 .RE .PP 許多軟件依賴於存在一個可以永遠被解析的本地主機名。 當使用動態主機名的時候, 傳統的做法是在主機名發生變化的同時修改 /etc/hosts 文件。 這種做法的缺點在於要求 /etc 目錄必須是可寫的, 而且有可能在修改 /etc/hosts 文件的同時, 系統管理員也正在編輯它。啓用 \fBnss\-myhostname\fR 之後, 就可以不必修改 /etc/hosts 文件。更進一步, 在許多系統上甚至無需存在這個文件。 .PP 要激活NSS模塊,可將 "myhostname" 添加到 /etc/nsswitch\&.conf 文件中以 "hosts:" 開頭的行裏面。 .PP 建議將 "myhostname" 放置在 nsswitch\&.conf 文件中以 "hosts:" 開頭的行的末尾,以確保優先使用傳統的基於DNS與 /etc/hosts 文件的解析方法。 .SH "例子" .PP 下面是一個正確開啓了 \fBnss\-myhostname\fR 插件的 /etc/nsswitch\&.conf 文件的例子: .sp .if n \{\ .RS 4 .\} .nf passwd: compat mymachines group: compat mymachines shadow: compat hosts: files mymachines resolve \fBmyhostname\fR networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis .fi .if n \{\ .RE .\} .PP 可以使用 \fBglibc\fR 軟件包中的 \fBgetent\fR 工具檢查配置的有效性: .sp .if n \{\ .RS 4 .\} .nf $ getent ahosts `hostname` ::1 STREAM omega ::1 DGRAM ::1 RAW 127\&.0\&.0\&.2 STREAM 127\&.0\&.0\&.2 DGRAM 127\&.0\&.0\&.2 RAW .fi .if n \{\ .RE .\} .PP 本例中的本地主機名是 \fIomega\fR .SH "參見" .PP \fBsystemd\fR(1), \fBnss-resolve\fR(8), \fBnss-mymachines\fR(8), \fBnsswitch.conf\fR(5), \fBgetent\fR(1) .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .PP 翻譯人員:金步國 .br 金步國作品集:http://www.jinbuguo.com .br .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR