我正在使用 KDE4/Plasma、wpa_supplicant、networkmanager、systemd 运行一个 arch 系统...
# cat /proc/version
Linux version 5.0.0-arch1-1-ARCH (builduser@heftig-18825) (gcc version 8.2.1 20181127 (GCC)) #1 SMP PREEMPT Mon Mar 4 14:11:43 UTC 2019
/etc/hostname
我读的内容localhost
。启动后,shell 命令hostname
现在输出localhost
.更确切地说:
# hostnamectl
Static hostname: localhost
Transient hostname: localhost.localdomain
Icon name: computer-laptop
Chassis: laptop
Machine ID: 7e0a101cd2f0406497a6e4354fc9b3b7
Boot ID: a1424a0995da4e84b1e55b7f79df957e
Operating System: Arch Linux
Kernel: Linux 5.0.0-arch1-1-ARCH
Architecture: x86-64
当我打开 WiFi 时,网络管理器连接到 WiFi 网络,然后主机名发生变化。例如:
# hostnamectl
Static hostname: localhost
Transient hostname: localhost.localdomain
Icon name: computer-laptop
Chassis: laptop
Machine ID: 7e0a101cd2f0406497a6e4354fc9b3b7
Boot ID: a1424a0995da4e84b1e55b7f79df957e
Operating System: Arch Linux
Kernel: Linux 5.0.0-arch1-1-ARCH
Architecture: x86-64
shell 命令hostname
现在输出localhost.localdomain
而不是localhost
.
因此,KDE 锁屏无法解锁,我无法从 KDE(或任何其他桌面)中的终端启动任何 X 应用程序。典型的错误消息如下:
$ gvim
Invalid MIT-MAGIC-COOKIE-1 keyE233: cannot open display
当我hostnamectl set-hostname localhost
以 root 身份发出时,行为恢复正常。
在其他一些 WiFi 中,连接后的主机名并不是localhost.localdomain
随机的(它似乎是由 WiFi 提供商确定的主机名,主要在大型企业网络中)。为什么 WiFi 提供商有权设置我的主机名?这可以以某种方式改变吗?
答案1
答案2
几种可能的修复方法。可能您有一个localhost
条目/etc/hosts
(就像地球上的其他一切一样),但您没有条目localhost.localdomain
。添加一个(也指向 127.0.0.1)可能可以解决您的“在家”问题 - 但不适用于您在“大型企业”网络上遇到的“随机”问题。
不过,“更好”的选择是检查您的 dhcp 客户端配置。在/etc/dhcp/dhclient.conf
(或者可能dhcpcd.conf
取决于发行版)中查找request
行 -
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
只需删除该host-name
选项即可。