为什么在 Linux 中永久更改主机名如此困难?

为什么在 Linux 中永久更改主机名如此困难?

突然,我的机器不知为何更改了主机名。我想设置以前的主机名。我可以更改主机名,非常容易,但只能暂时更改,不能永久更改!当我说主机名时,我指的是它在终端上出现在用户名后面的单词,例如。 username@hostname :~$

我做了什么:

  • 添加"kernel.hostname = name" in /etc/sysctl.conf-重启后没有变化。
  • echo 'name' > /proc/sys/kernel/hostname只是暂时改变
  • hostnamectl set-hostname name只是暂时改变
  • sudo hostname name 只是暂时改变
  • cat /etc/hostname已经包含“名称”
  • sudo sysctl -w kernel.hostname=name- 重启后没有变化。

使用 sudo 从终端临时更改主机名时出现问题

  • Authorization required, but no authorization protocol specified
  • 无需更改当前主机名系统输出cannot connect to display:0。当我将主机名(临时)更改为正确的主机名时,此消息消失。我相信系统以某种方式保留了我以前的主机名并且它发生冲突。

所以,到目前为止,我没有选择。有什么建议吗?

答案1

对于 Debian 发行版,更改主机名的主要方法是编辑/etc/hostname/etc/hosts,然后重新启动。

在特定应用程序和子系统中可能存在次要考虑因素。例如,这是我在系统中考虑的一个因素:

  • Exim4 MTA 子系统:编辑/etc/exim4/update-exim4.conf.conf或运行dpkg-reconfigure exim4-config

答案2

我找到了如何永久更改主机名的方法。/etc/sysctl.conf 中的更改不会自动写入内核!

然而,跑步之后

sudo sysctl -w kernel.hostname=name and/or
sudo nano /etc/sysctl.conf  to add `kernel.hostname=name`

通过使用

sudo sysctl -p --system -w

那么,我认为 Debian 发行版这里缺少了一些东西?

更新:如果您的主机名要更改为easy或任何其他名称,请考虑这一点: sudo nano /var/lib/dhcp/dhclient.enp3s0.leases 并进行更改。如果没有找到,sudo grep -rnw -e easy请查找其所在位置。

相关内容