NetworkManager がホスト名の設定を妨げます。

NetworkManager がホスト名の設定を妨げます。

私はKDE4 / Plasma、wpa_supplicant、networkmanager、systemdを使用してアーチシステムを実行しています。

# 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。起動後、シェルコマンドは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をオンにすると、Network Managerが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

hostname今シェルコマンドが localhost.localdomainlocalhost

したがって、KDEロック画面のロックを解除することはできず、KDE端末(または他のデスクトップ)からXアプリケーションを起動することはできません。一般的なエラーメッセージは次のとおりです。

$ gvim
Invalid MIT-MAGIC-COOKIE-1 keyE233: cannot open display

ルートとして実行すると、hostnamectl set-hostname localhost動作は正常に戻ります。

一部の他のWiFiでは、接続後のホスト名はランダムではありませんlocalhost.localdomain(ほとんどの大企業ネットワークでは、WiFiプロバイダが決定するホスト名のようです)。 WiFiプロバイダに自分のホスト名を設定する権限があるのはなぜですか?どういうわけか変更できますか?

答え1

イヴァニバンの回答(調整dhcpcd.con)合理的に見えますが、私の場合は動作しません。だから私はこれがDHCPとは何の関係もないと思います。私は偶然偶然発見したこの投稿これは問題がDHCPではなくNetworkManagerにあることを知らせます。以下を追加すると、/etc/NetworkManager/NetworkManager.conf私の問題は解決しました。

[main]
plugins=keyfile 
hostname-mode=none 

man 5 NetworkManager.confこのオプションの詳細についてはを参照してくださいhostname-modenone私の場合、NetworkManagerが一時ホスト名を設定しないように設定します。

答え2

いくつかの可能な修正。たぶんあなたは(地球上の他のものと同様に)アイテムを持っていますが、アイテムがlocalhostない/etc/hostsかもしれませんlocalhost.localdomain。 1つを追加すると(また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

関連情報