GOPHERSPACE.DE - P H O X Y
gophering on dataswamp.org
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 @tokudan@chaos.social 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.