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