WSL2修改主机名
参考:WSL 修改 hostname_wsl修改主机名-博客 和 How to change the hostname of Ubuntu running in Windows WSL
如果想在不修改windows主机名的情况下,在WSL中修改主机名,可以使用WSL的配置文件。
sudo vim /etc/wsl.conf
添加如下配置
[network]
hostname = <hostname>
generateHosts = false
其中hostname修改为你想要的主机名,generateHosts选项代表不自动生成hosts文件(我的理解是不要自动重置)。
随后修改/etc/hosts
文件,默认情况下,该文件应该长下面这样
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1 localhost
127.0.1.1 my-old-hostname.localdomain my-old-hostname
192.168.0.138 host.docker.internal
192.168.0.138 gateway.docker.internal
127.0.0.1 kubernetes.docker.internal
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouter
你需要做的是将文件中my-old-hostname
修改为你刚刚更新的新用户名,其他内容不动。在我的电脑上第一个my-old-hostname
后面只有一个点,不带localdomain
。
127.0.1.1 new-hostname.localdomain new-hostname
回到windows的命令行中重启wsl即可生效。
wsl --shutdown 虚拟机名称
初次修改后我遇到了这个sudo切换的错误,这是因为你的/etc/hosts
没有正常修改为新的hostname,请检查修改是否正确。
❯ sudo su -
sudo: unable to resolve host wsl-ubuntu: Name or service not known