'\" 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