NSS-MYHOSTNAME(8)

NAME
nss-myhostname, libnss_myhostname.so.2 - 爲本地配置的系統主機名提供解析功能

SYNOPSIS

libnss_myhostname.so.2

描述

nss-myhostname 是一個 glibc(GNU C Library) NSS(Name Service Switch) 插件， 提供瞭解析本地配置的系統主機名的功能。 所謂"本地配置的系統主機名"其實就是 gethostname(2) 函數的返回值。 該模塊的解析規則如下：

    • 本機的主機名 將會被解析爲所有本地IP地址，並按照他們所屬的 scope 排序。 如果 scope 不存在，則會被解析爲本地迴環接口上的 IPv4 127.0.0.2 以及 IPv6 ::1

    • "localhost" 與 "localhost.localdomain" 以及所有以 ".localhost" 或 ".localhost.localdomain" 結尾的主機名， 都會被解析爲 127.0.0.1 與 ::1

    • "gateway" 會被 解析爲當前所有的默認網關地址， 並按照地址的數字順序排序。 這樣就爲當前網關分配了一個固定的主機名， 從而可以讓應用程序在不關心網絡配置的情況下，直接引用網關。

許多軟件依賴於存在一個可以永遠被解析的本地主機名。 當使用動態主機名的時候， 傳統的做法是在主機名發生變化的同時修改 /etc/hosts 文件。 這種做法的缺點在於要求 /etc 目錄必須是可寫的， 而且有可能在修改 /etc/hosts 文件的同時， 系統管理員也正在編輯它。啓用 nss-myhostname 之後， 就可以不必修改 /etc/hosts 文件。更進一步， 在許多系統上甚至無需存在這個文件。

要激活NSS模塊，可將 "myhostname" 添加到 /etc/nsswitch.conf 文件中以 "hosts:" 開頭的行裏面。

建議將 "myhostname" 放置在 nsswitch.conf 文件中以 "hosts:" 開頭的行的末尾，以確保優先使用傳統的基於DNS與 /etc/hosts 文件的解析方法。

例子

下面是一個正確開啓了 nss-myhostname 插件的 /etc/nsswitch.conf 文件的例子：

    passwd:         compat mymachines
    group:          compat mymachines
    shadow:         compat
    hosts:          files mymachines resolve myhostname
    networks:       files
    protocols:      db files
    services:       db files
    ethers:         db files
    rpc:            db files
    netgroup:       nis

可以使用 glibc 軟件包中的 getent 工具檢查配置的有效性：

    $ 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

本例中的本地主機名是 omega

參見

systemd(1), nss-resolve(8), nss-mymachines(8), nsswitch.conf(5), getent(1)

跋
本頁面中文版由中文 man 手冊頁計劃提供。

翻譯人員：金步國
金步國作品集：http://www.jinbuguo.com
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh