User Tools

Site Tools


definir_el_hostname_en_diferentes_gnu_linux

Definir en el hostname en GNU/Linux en Systemd y SysVinit

Depende de la distribución y sistema de arranque del sistema, en GNU/Linux se pueden obtener y configurar los hostname de diferentes maneras. Si se tiene algun tipo de problemas, esta guía puede ser útil para localizar la configuración faltante o erronea.

Cuando se habla de definir el nombre del host hay que tener en cuenta tres conceptos, estos son el hostname, el dominio y el fqdn.

FQDN (sigla en inglés de fully qualified domain name) es el nombre que incluye el nombre de la computadora y el nombre de dominio asociado a ese equipo. Es decir, conceptualmente “hostname.dominio”, pero se puede tener un hostname en el sistema diferente al usado en el fqdn, por ejemplo un hostname: freakpc , dominio busindre.com y un fqdn www.busindre.com.

Definir el hostname en sistemas SysVinit

Cada distribución tiene un script que suele inicializar el hostname. En sistemas Debian el funcionamiento suele ser usar /etc/hostname, de estar vacío, se prueba con el valor del kernel (/proc/sys/kernel/hostname) y si tampoco contiene un valor se utiliza localhost. Veamos algunas diferencias entre distribuciones.

  • Debian / Ubuntu: init script, /etc/init.d/hostname.sh (“service hostname start” a veces disponible).
  • Slackware: /etc/HOSTNAME
  • RedHat / CentOS: En la variable “HOSTNAME” de /etc/sysconfig/network

El comando hostname trabaja con /etc/hostname y /etc/hosts.

hostname -a, --aliases       # Muestra los alias creados.     
hostname -d, --domain        # Muestra el dominio (usa la la primera definición de /etc/hosts).    
hostname -f, --fqdn, --long  # Muestra fqdn.
 
hostname -i  # Lista la dirección IP del hostname. 

El FQDN se nutre del fichero /etc/hosts, sus modificaciones tienen efectos inmediatos pero no se mantienen tras un reinicio.

NOTA: Tras modificar el hostname algunos programas pueden requerir reiniciarse, sobre todo aplicaciones gráficas.

Fichero /etc/hostname.

freetsa

Fichero /etc/hosts.

# Sintaxis: X.X.X.X canonical_hostname [alias...]

127.0.0.1 localhost.localdomain localhost
205.185.116.116 www.freetsa.org freetsa.org  freetsa
::1		localhost ip6-localhost ip6-loopback
hostname 
freetsa  # Viene de /etc/hostname.
 
hostname -d
freetsa.org
 
hostname -f
www.freetsa.org
 
hostname -a
freetsa.org freetsa

Consultar o fijar en el kernel directamente el hostname y el dominio.

/sbin/sysctl -n kernel.hostname    # /proc/sys/kernel/hostname
/sbin/sysctl -n kernel.domainname  # /proc/sys/kernel/domain
 
sysctl -w kernel.hostname=freetsa        # echo "freetsa" > /proc/sys/kernel/hostname
sysctl -w kernel.domainname=freetsa.org  # echo "freetsa.org" > /proc/sys/kernel/domain

Definir el hostname en Systemd

Ademas del comando hostname y los ficheros anteriormente comentados en la sección SysVinit, en sistemas Systemd se recomienda usar únicamente hostnamectl.

Tipos de hostname comprendidos por hostnamectl.

Static host name: “server1”, “server2” o “www.server.com“”.

Transient/dynamic host name: Como el estático pero definido por (DHCP / mDNS), es ignorado si se usa el estático.

Pretty host name: De formato libre, permite una descripción en UTF8, por ejemplo “Servidor de Backups 11”.

Comando hostnamectl.

hostnamectl   # Visualizar la actual configuración.
 
# Configurar el hostname.
 
hostnamectl set-hostname "backups.dominio.com" --static # Utilizado por el kernel al inicializar, si está fijado la opción trastient es ignorada.
 
hostnamectl set-hostname "Gandalf" --transient (De estar definido el hostname estático, este desaparece de hostnamectl al poco de configurarse)
 
hostnamectl set-hostname "Servidor de Backups de domino.com" --pretty
 
# Borrar  un hostname en Systemd.
 
hostnamectl set-hostname ""   # Por defecto se refiere a --static
hostnamectl set-hostname "" --transient
hostnamectl set-hostname "" --pretty

Para publicar los cambios del hostname en Systemd es necesario reiniciar el servicio systemd-hostnamed.

systemctl restart systemd-hostnamed

Si SELinux no permite editar el archivo hostname, usar restorecon.

restorecon -v /etc/hostname

Influencia del hostname en la resolución de nombres / dominios

Si se tiene como hostname un dominio fqdn configurado, por ejemplo “dominioabc.com”, al intentar resolver la IP de cualquier palabra, pongamos xxx, el sistema hará una solicitud DNS para obtener la ip de xxx.domonioabc.com.

ping xxx
ping: xxx: Nombre o servicio desconocido
 
hostname
localarch  # Hostame actual 
 
hostname dominioabc.com   # Establecemos como hostname dominioabc.com.
 
ping xxx   # Ahora hace un ping a xxx.dominioabc.com, que en este caso existe.
PING xxx.com (14.56.6.5) 56(84) bytes of data.
64 bytes from 14.56.6.5 (14.56.6.5): icmp_seq=1 ttl=54 time=153 ms
definir_el_hostname_en_diferentes_gnu_linux.txt · Last modified: 2020/12/25 22:57 by 127.0.0.1