===== 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