我在使用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