突然,我的机器不知为何更改了主机名。我想设置以前的主机名。我可以更改主机名,非常容易,但只能暂时更改,不能永久更改!当我说主机名时,我指的是它在终端上出现在用户名后面的单词,例如。
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
请查找其所在位置。