今天想修改云主机的hostname,但是腾讯云的控制台里面好像不能直接改这个名字。需要在root用户里面修改!

参考 修改服务器主机名称-腾讯云开发者社区-腾讯云

修改前:

1
[muxue@VM-12-2-centos:~]$

image-20220513195000888

修改后:

1
[muxue@bt-7274:~]$

image-20220513194914471

1.查看当前的主机名称

1
hostname

2.临时修改主机名称

不建议使用,重启之后又会还原

1
2
# hostname 主机名称
hostname XXX

3.永久修改主机名称

警告:WSL2中不能使用此办法修改主机名!!否则修改后会导致WSL主机暂时无法正常进入!(遇到此问题可以重启电脑,WSL的主机名会自动重置)

1
2
# hostnamectl set-hostname 主机名称
hostnamectl set-hostname XXX

4.重启服务

重启后效果就出现了

1
reboot

谢谢你,BT7274

在这里插入图片描述

5.WSL2修改主机名

参考:WSL 修改 hostname_wsl修改主机名-CSDN博客How to change the hostname of Ubuntu running in Windows WSL

如果想在不修改windows主机名的情况下,在WSL中修改主机名,可以使用WSL的配置文件。

1
sudo vim /etc/wsl.conf

添加如下配置

1
2
3
[network]
hostname = <hostname>
generateHosts = false

其中hostname修改为你想要的主机名,generateHosts选项代表不自动生成hosts文件(我的理解是不要自动重置)。

随后修改/etc/hosts文件,默认情况下,该文件应该长下面这样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 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

1
127.0.1.1       new-hostname.localdomain      new-hostname

回到windows的命令行中重启wsl即可生效。

1
wsl --shutdown 虚拟机名称

初次修改后我遇到了这个sudo切换的错误,这是因为你的/etc/hosts没有正常修改为新的hostname,请检查修改是否正确。

1
2
❯ sudo su -
sudo: unable to resolve host wsl-ubuntu: Name or service not known