我想更改操作系统主机名,但不想重新启动。
我已经编辑/etc/hostname
,但需要重新启动才能生效。如何避免这种情况?
答案1
很简单。只需点击齿轮图标(位于屏幕右上角),打开“关于此计算机”屏幕(位于齿轮图标)并编辑“设备名称”。
或者,在终端中使用以下命令:
sudo hostname your-new-name
这会将主机名设置为 your-new-name,直到您重新启动。请参阅man hostname
和如何更改计算机名称?以获取更多信息。请勿_
以您的名义使用。
笔记
重新启动后,您的更改/etc/hostname
将被使用,因此(正如你在问题中所说的那样),你仍然应该使用
sudo -H gedit /etc/hostname
(或其他编辑器)以便该文件包含主机名。
要测试文件是否设置正确,请运行:
sudo service hostname start
您还应该编辑/etc/hosts
并更改以下行:
127.0.1.1 your-old-hostname
这样它现在就包含您的新主机名。(这是必需的,否则许多命令将停止运行。)
答案2
Ubuntu 13.04 及以上版本
这hostnamectl
命令是桌面版和服务器版默认安装的一部分。
它结合了通过命令设置主机名hostname
和编辑/etc/hostname
。除了设置静态主机名外,它还可以设置“漂亮”主机名,Ubuntu 中不使用这种主机名。不幸的是,编辑/etc/hosts
仍然必须单独进行。
hostnamectl set-hostname new-hostname
此命令是systemd-services
软件包(从 Ubuntu 14.04 开始,它还包括timedatectl
和localectl
命令)。随着 Ubuntu 迁移到systemd
,此工具将成为未来。
答案3
无需重启
在 ubuntu 中更改主机名或计算机名无需重启
编辑/etc/hostname
并更改为新值,
nano /etc/hostname
编辑并将/etc/hosts
旧的 127.0.1.1 行更改为新的主机名
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
笔记:我在论坛上看到过 > 编辑/etc/hosts
并将旧的 127.0.1.1 行更改为您的新主机名(如果您不这样做,您将无法再使用sudo
。如果您已经完成此操作,请在 grub 菜单上按 ESC,选择恢复,然后将您的主机文件编辑为正确的设置)
重启后,您的主机名将是您选择的新主机名
无需重启
改变无需重启,编辑后即可使用 hostname.sh /etc/hostname
。您必须将两个主机名都保留为/etc/hosts
(127.0.0.1 newhost oldhost),直到执行以下命令:
sudo service hostname start
笔记:上述命令使更改生效。保存在此文件 ( /etc/hostname
) 中的主机名将在系统重启时保留(并将使用相同的服务进行设置)。
答案4
Cloud-init(Ubuntu 18+)主机名持久性
虽然上述方法(hostnamectl
、etc/hostname
等)可以立即更改主机名,但随着云初始化- 它可以控制主机名的设置 - 以及许多其他内容。因此,如果安装了 cloud-init,它在重启后不会保留。如果您希望更改在重启后保留,则需要编辑cloud-init 配置文件,禁用 cloud-init主机名设置/更新模块:
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
或者完全禁用 cloud-init:
sudo touch /etc/cloud/cloud-init.disabled