Title: Managing /etc/hosts on NixOS | |
Author: Solène | |
Date: 14 September 2021 | |
Tags: nixos | |
Description: | |
# Introduction | |
This is a simple article explaining how to manage entries in /etc/hosts | |
in a NixOS system. Modifying this file is quite useful when you need | |
to make tests on a remote server while its domain name is still not | |
updated so you can force a domain name to be resolved by a given IP | |
address, bypassing DNS queries. | |
NixOS being what is is, you can't modify the /etc/hosts file directly. | |
NixOS stable documentation about the extraHosts variable | |
# Configuration | |
In your /etc/nixos/configuration.nix file, you have to declare the | |
variable networking.extraHosts and use "\n" as separator for entries. | |
```NixOS configuration file sample | |
networking.extraHosts = "1.2.3.4 foobar.perso.pw\n1.2.3.5 foo.perso.pw"; | |
``` | |
or as suggested by @[email protected] on Mastodon, you can use | |
multiple lines in the string as follow (using two single quotes | |
character): | |
```NixOS configuration file sample | |
networking.extraHosts = '' | |
1.2.3.4 foobar.perso.pw | |
1.2.3.5 foo.perso.pw | |
''; | |
``` | |
The previous pieces of configuration will associate "foobar.perso.pw" | |
to IP 1.2.3.4 and "foo.perso.pw" to IP 1.2.3.5. | |
Now, I need to rebuild my system configuration and use it, this can be | |
done with the command `nixos-rebuild switch` as root. |