GNS

gns is a process created by mini_init. Its jobs is to configure networking within the WSL2 virtual machine.

Networking configuration

Networking settings are shared by all WSL2 distributions. While WSL2 is running, gns maintains an hvsocket channel to wslservice.exe, which is used to send various networking related configurations such as:

  • Interface IP configuration
  • Routing table entries
  • DNS configuration
  • MTU size configuration

When DNS tunneling is enabled, gns is also responsible for replying to DNS requests.

See src/linux/init/GnsEngine.cpp and src/windows/service/exe/GnsChannel.cpp