# nss-myhostname

## NAME



           nss-myhostname, libnss_myhostname.so.2 - Hostname resolution for
           the locally configured system hostname
    


## SYNOPSIS



           libnss_myhostname.so.2
    


## DESCRIPTION



           **nss-myhostname** is a plug-in module for the GNU Name Service Switch
           (NSS) functionality of the GNU C Library (**glibc**), primarily
           providing hostname resolution for the locally configured system
           hostname as returned by gethostname(2). The precise hostnames
           resolved by this module are:
    
           •   The local, configured hostname is resolved to all locally
               configured IP addresses ordered by their scope, or — if none
               are configured — the IPv4 address 127.0.0.2 (which is on the
               local loopback) and the IPv6 address ::1 (which is the local
               host).
    
           •   The hostnames "localhost" and "localhost.localdomain" (as well
               as any hostname ending in ".localhost" or
               ".localhost.localdomain") are resolved to the IP addresses
               127.0.0.1 and ::1.
    
           •   The hostname "_gateway" is resolved to all current default
               routing gateway addresses, ordered by their metric. This
               assigns a stable hostname to the current gateway, useful for
               referencing it independently of the current network
               configuration state.
    
           •   The hostname "_outbound" is resolved to the local IPv4 and
               IPv6 addresses that are most likely used for communication
               with other hosts. This is the preferred source addresses of
               default gateways if specified, or determined by requesting a
               routing decision to the configured default gateways from the
               kernel and then using the local IP addresses selected by this
               decision. This hostname is only available if there is at least
               one local default gateway configured. This assigns a stable
               hostname to the local outbound IP addresses, useful for
               referencing them independently of the current network
               configuration state.
    
           Various software relies on an always-resolvable local hostname.
           When using dynamic hostnames, this is traditionally achieved by
           patching /etc/hosts at the same time as changing the hostname.
           This is problematic since it requires a writable /etc/ file system
           and is fragile because the file might be edited by the
           administrator at the same time. With **nss-myhostname** enabled,
           changing /etc/hosts is unnecessary, and on many systems, the file
           becomes entirely optional.
    
           To activate the NSS modules, add "myhostname" to the line starting
           with "hosts:" in /etc/nsswitch.conf.
    
           It is recommended to place "myhostname" after "files" and before
           "dns". This resolves well-known hostnames like "localhost" and the
           machine hostnames locally. It is consistent with the behaviour of
           **nss-resolve** , and still allows overriding via /etc/hosts.
    
           Please keep in mind that **nss-myhostname**(and **nss-resolve**) also
           resolve in the other direction — from locally attached IP
           addresses to hostnames. If you rely on that lookup being provided
           by DNS, you might want to order things differently.
    


## EXAMPLE



           Here is an example /etc/nsswitch.conf file that enables
           **nss-myhostname** correctly:
    
               passwd:         files systemd
               group:          files [SUCCESS=merge] systemd
               shadow:         files systemd
               gshadow:        files systemd
    
               hosts:          mymachines resolve [!UNAVAIL=return] files **myhostname** dns
               networks:       files
    
               protocols:      db files
               services:       db files
               ethers:         db files
               rpc:            db files
    
               netgroup:       nis
    
           To test, use **glibc** 's getent(1) tool:
    
               $ 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
    
           In this case, the local hostname is _omega_.
    


* * *