asdf@MiWiFi-R2D-srv:~$ hostnamectl Static hostname: Debian Transient hostname: MiWiFi-R2D-srv Icon name: computer-desktop Chassis: desktop 🖥️ Machine ID: 3b0e2483f1a718e2cd0885fd53e8b700 Boot ID: 65661c83045b4ffc81d64d49e4cca518 Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.1.0-9-amd64 Architecture: x86-64 Hardware Vendor: Gigabyte Technology Co., Ltd. Hardware Model: G1.Sniper B5 Firmware Version: F6 /etc/hostname 用的是 Static hostname\\ 而 hostname 修改的是 Transient hostname\\ 电脑启动的时候用的是 Transient hostname\\ 我们需要 hostnamectl set-hostname Debian 这个命令修改 hostname 为 Debian\\ 这样会同时把 static 和 transient 名字修改了\\ 当重启后,''transient hostname''就会改为 ''static'' 遵循的是重启读取的是''/etc/hostname''\\ **linux设置了静态IP之后还会获取动态IP导致hostname无法修改的问题解决** 原因是network与NetworkManager服务冲突 第一步是禁用NetworkManager服务 systemctl stop NetworkManager.service systemctl disable NetworkManager.service 第二步重启network服务 systemctl restart network \\ \\ 原因是connman\\ https://wiki.archlinuxcn.org/wiki/ConnMan\\ ConnMan 默认会更改临时 hostname。与 X authority 一起使用时会有问题:如果用旧的 hostname 生成了 xauth magic coookie 之后,ConnMan 改变了你的 hostname,那么将无法创建新的窗口,会显示诸如 No protocol specified 和 Can't open display: :0.0 的错误。手动重置 hostname 可以解决这个问题,但根本的解决办法是从一开始就防止 ConnMan 改变你的 hostname。把下面的配置加入 /etc/connman/main.conf 即可: [General] AllowHostnameUpdates=false 改变这个文件后记得重启 connman.service。\\ 要测试的话,建议一边观察 systemd 日志,一边插拔几次网线接口。