在Windows WSL (Linux的Windows子系统)上运行的Ubuntu如何更改主机名

在Windows 安装的Ubuntu,如何修改主机名。有列了两种方法,提供给大家参照。

文章目录

方法一:hostname指令修改

hostname指令修改hostname:

bash 复制代码
sudo hostname test

修改后,需要reboot,我们可以通过执行特定指令查看是否有修改:

bash 复制代码
hostname

可以看到hostname已经暂时修改,但

bash 复制代码
mirror@Y2040001-PC:~$ hostname
test

方法二:修改配置文件修改hostnanme

打开 /etc/wsl.conf wsl.conf这个文件,如果这个文件不存在,则新建:

bash 复制代码
sudo vi /etc/wsl.conf
bash 复制代码
hostname = Ubuntu22
generateHosts = false
  • hostname = Ubuntu22将更新/etc/hostname中的主机名
  • generateHosts = false 将阻止WSL自动生成/etc/hosts文件。否则,在重新启动Ubuntu时,hosts文件更改将被覆盖,会出现报错:sudo: unable to resolve host test: Name or service not known
bash 复制代码
sudo vi /etc/hosts

红框处修改为新的hostname:

bash 复制代码
# 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       Ubuntu22.localdomain    Ubuntu22                                                                                                                                                                                             127.0.0.1       localhost

修改完成后,保存并退出。关闭子系统或者重新运行子系统,

修改不会立即生效,关闭子系统后必须等待~8秒。必须等待8秒的原因,官方解释如下:

If you launch a distribution (ie. Ubuntu), modify the wsl.conf file, close the distribution, and then re-launch it. You might assume that your changes to the wsl.conf file have immediately gone into effect. This is not currently the case as the subsystem could still be running. You must wait ~8 seconds for the subsystem to stop before relaunching in order to give enough time for your changes to be picked up.

可以在power shell中执行wsl --list --running查看子系统是否仍然还在运行。

bash 复制代码
PS C:\Users\Administrator> wsl --list --running

如果想要立即停止,可以执行如下:

bash 复制代码
wsl -t Ubuntu

或者

bash 复制代码
wsl --shutdown

重新开机子系统,验证hostname修改成功。

bash 复制代码
mirror@Ubuntu22:~$ hostname
Ubuntu22
mirror@Ubuntu22:~$

wsl.conf 文件配置选项

wsl.conf 文件,有一些配置选项,大家可以根据自己需要参考:

bash 复制代码
# Automatically mount Windows drive when the distribution is launched
[automount]

# Set to true will automount fixed drives (C:/ or D:/) with DrvFs under the root directory set above. Set to false means drives won't be mounted automatically, but need to be mounted manually or with fstab.
enabled = true

# Sets the directory where fixed drives will be automatically mounted. This example changes the mount location, so your C-drive would be /c, rather than the default /mnt/c. 
root = /

# DrvFs-specific options can be specified.  
options = "metadata,uid=1003,gid=1003,umask=077,fmask=11,case=off"

# Sets the `/etc/fstab` file to be processed when a WSL distribution is launched.
mountFsTab = true

# Network host settings that enable the DNS server used by WSL 2. This example changes the hostname, sets generateHosts to false, preventing WSL from the default behavior of auto-generating /etc/hosts, and sets generateResolvConf to false, preventing WSL from auto-generating /etc/resolv.conf, so that you can create your own (ie. nameserver 1.1.1.1).
[network]
hostname = DemoHost
generateHosts = false
generateResolvConf = false

# Set whether WSL supports interop processes like launching Windows apps and adding path variables. Setting these to false will block the launch of Windows processes and block adding $PATH environment variables.
[interop]
enabled = false
appendWindowsPath = false

# Set the user when launching a distribution with WSL.
[user]
default = DemoUser

# Set a command to run when a new WSL instance launches. This example starts the Docker container service.
[boot]
command = service docker start

推荐阅读

相关推荐
神梦流4 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器
凡人叶枫4 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
wdfk_prog4 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
xuhe24 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
Lsir10110_4 小时前
【Linux】进程信号(下半)
linux·运维·服务器
liuniu08184 小时前
VMware虚拟机安装ubuntu2022
ubuntu·ros
酉鬼女又兒5 小时前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面5 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
zl_dfq5 小时前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke2335 小时前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器