LaT*_*use 6 dhcp hostname networkmanager systemd
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
/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
Run Code Online (Sandbox Code Playgroud)
当我打开 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
Run Code Online (Sandbox Code Playgroud)
shell 命令hostname现在输出localhost.localdomain而不是localhost.
因此,KDE 锁屏无法解锁,并且我无法从 KDE(或任何其他桌面)的终端启动任何 X 应用程序。典型的错误消息是这样的:
$ gvim
Invalid MIT-MAGIC-COOKIE-1 keyE233: cannot open display
Run Code Online (Sandbox Code Playgroud)
当我hostnamectl set-hostname localhost以 root 身份发出时,行为恢复正常。
在其他一些 WiFi 中,连接后的主机名并不是localhost.localdomain随机的(它似乎是由 WiFi 提供商确定的主机名,主要在大型企业网络中)。为什么 WiFi 提供商有权设置我的主机名?这可以以某种方式改变吗?
伊万尼万的答案(调整dhcpcd.con)虽然看似合理,但在我的情况下不起作用。所以我怀疑这与 DHCP 无关。我偶然发现这篇文章,它告诉我问题不在于 DHCP,而在于 NetworkManager。添加以下内容来/etc/NetworkManager/NetworkManager.conf解决我的问题:
[main]
plugins=keyfile
hostname-mode=none
Run Code Online (Sandbox Code Playgroud)
man 5 NetworkManager.conf有关该选项的详细信息,请参阅hostname-mode。将其设置为none防止 NetworkManager 设置临时主机名,这就是我的情况。
| 归档时间: |
|
| 查看次数: |
7095 次 |
| 最近记录: |