Ubuntu 13.04 及以上版本

Ubuntu 13.04 及以上版本

我想更改操作系统主机名,但不想重新启动。

我已经编辑/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 开始,它还包括timedatectllocalectl命令)。随着 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+)主机名持久性

虽然上述方法(hostnamectletc/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

相关内容