我在使用Windows 的 wsl 功能的时候发现在默认情况下 wsl 的 hostname 是和当前 windows 系统的主机名称保持一致的。当我尝试使用 hostname 修改主机名时,发现并不能完全修改,在重新进入后又会恢复成原来的样子。经过不停的查找,终于找到了能够修改 hostname 的方法。
步骤一
首先打开控制台进入 wsl:

进入 /etc 目录 ,编辑 wsl.conf,如果没有该文件就创建一个:
vim /etc/wsl.conf
输入以下参数:
[network]
hostname = node01
generateHosts = false
在 network配置组下面添加以下配置:
| 配置 | 说明 |
|---|---|
hostname | 设置当前 wsl 的主机名称 |
generateHosts | 是否自动生成 hosts 文件 |
在设置完成后退出 wsl。
注意在直接退出wsl 之后配置并没有直接生效,而是在wsl 重启之后才会生效,所以我们可以使用命令使wsl 先关闭,然后再重新进入就会发现hostname已经修改过来了。
wsl --list --running
wsl --shutdown
wsl --list --running
wsl

wsl 修改默认用户的方法
通常我们可以通过以下命令来指定进入 wsl 的时候使用的用户:
# wsl -u <Username>,wsl --user <Username>
wsl -u root
如果希望修改默认用户的话,则需要进行设置,比如我这里使用的 wsl 是 Ubuntu2004 版本,则需要进行如下设置:
# <DistributionName> config --default-user <Username>
ubuntu2004.exe config --default-user root

或者使用上面的 wsl.conf 进行配置,进入 wsl ,编辑 wsl.conf 配置文件:
[user]
default = root

保存配置并退出,同样在关闭 wsl 之后重新进入,便会发现默认用户已经修改了。需要注意的是 wsl.conf 配置优先级要高于Ubuntu2004.exe config --default-user,因此如果两个都配置了的话,会以 wsl.conf 中的配置优先。
参考资料
WSL不修改Windows主机名设置hostname的方法
WSL设置hostname,不修改Windows主机名
How to change hostname on Ubuntu running on Windows WSL
Configure Linux distributions


















