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.localdomain.localhost

따라서 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-mode. none내 경우에는 NetworkManager가 임시 호스트 이름을 설정하지 못하도록 이를 설정합니다 .

답변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.

관련 정보