NetworkManager 干擾主機名配置
我正在執行一個帶有 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 時,networkmanager 連接到 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 提供商有權設置我的主機名?這可以以某種方式改變嗎?
Ivanivan 的回答(調整
dhcpcd.con
)雖然看似合理,但在我的情況下不起作用。所以我懷疑這與 DHCP 無關。我偶然發現了這篇文章,它告訴我問題不在於 DHCP,而在於 NetworkManager。添加以下內容/etc/NetworkManager/NetworkManager.conf
為我解決了這個問題:[main] plugins=keyfile hostname-mode=none
有關
man 5 NetworkManager.conf
該hostname-mode
選項的詳細資訊,請參閱。將其設置為none
防止 NetworkManager 設置臨時主機名,這就是我的情況。