El fitxer Hosts ens permet resoldre localment consultes DNS, cosa que pot resultar molt útil per a projectes nous si els canvis de DNS encara no s'han propagat al domini que tinguem en propietat o si encara no disposem de domini i necessitem fer proves amb consultes DNS.
Els canvis que fem al fitxer hosts només afectaran el servidor local que estiguem configurant i no tindran cap efecte en altres servidors. A continuació us detallem com habilitar l'edició del fitxer hosts perquè els canvis persisteixin quan reiniciem el servidor.
Procés per deshabilitar la sobreescriptura del fitxer hosts
Avís
Si has creat el servidor recentment a Clouding no necessites fer cap canvi de configuració.
El primer pas que hem de fer és impedir que el servei Cloud Init s'encarregui de la gestió del fitxer hosts, ja que si intentem editar directament el fitxer hosts i reiniciem el servidor ens trobarem que el fitxer hosts s'ha sobreescrit amb els valors inicials.
Per impedir que Cloud init controli el fitxer hosts hem de seguir els passos següents:
Ubuntu 18.04
Editem el fitxer de configuració de Cloud-Init següent:
# vi /etc/cloud/cloud.cfgCerquem la variable "manage_etc_hosts" i l'establim a false.
manage_etc_hosts: false Ubuntu 16.04, Debian 9 i Centos 7
Editem el fitxer de configuració de Cloud-Init següent:
# vi /etc/cloud/cloud.cfgAfegim la variable següent a sota de "disable_root: false":
manage_etc_hosts: false A l'apartat "cloud_init_modules" hem d'eliminar el mòdul següent:
- update_etc_hosts
Centos 8 i Debian 10
Editem el fitxer de configuració de Cloud-Init següent:
# vi /etc/cloud/cloud.cfg.d/99_clouding.cfg Afegim la variable següent a sota de "disable_root: false":
manage_etc_hosts: false A l'apartat "cloud_init_modules" hem d'eliminar el mòdul següent:
- update_etc_hosts Amb aquests canvis ja podrem editar el fitxer hosts i, en reiniciar el servidor, els canvis persistiran.
Exemple de registre al fitxer Hosts
Si volguéssim que el nostre servidor, en fer la consulta DNS de "mail.example.com", fes la consulta localment, hauríem de seguir els passos següents:
Editem el fitxer hosts:
# vi /etc/hostsAfegim la línia següent:
127.0.0.1 mail.example.com Abans de fer el canvi, si fem un ping a mail.example.com, el resultat seria el següent:
root@mail:~# ping mail.example.com
ping: mail.example.com: Name or service not known En canvi, després d'afegir "127.0.0.1 mail.example.com" podem veure que la consulta DNS ja respon i ho fa amb la IP de "loopback" del mateix servidor:
root@mail:~# ping mail.example.com
PING mail.example.com (127.0.0.1) 56(84) bytes of data.
64 bytes from mail.example.com (127.0.0.1): icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from mail.example.com (127.0.0.1): icmp_seq=2 ttl=64 time=0.040 ms Si la consulta DNS que volem fer es troba en un servidor extern, n'hi hauria prou de substituir la IP 127.0.0.1 per la IP pública del servidor extern.
Amb aquests passos senzills podem afegir registres a "/etc/hosts" perquè el servidor resolgui les consultes DNS localment.