sudo 명령은 hostnamectl을 사용하여 호스트 이름을 설정한 후 지연을 표시합니다.

sudo 명령은 hostnamectl을 사용하여 호스트 이름을 설정한 후 지연을 표시합니다.

로컬 네트워크를 통해 액세스할 수 있지만 인터넷에 연결되어 있지 않은 시스템이 있습니다. 이 시스템의 호스트 이름을 변경하는 데 문제가 있습니다. 호스트 이름을 변경하는 과정은 두 단계로 구성된다는 것을 알고 있습니다.

  1. hostnamectl set-hostname myhost.mydomain
  2. sudo nano /etc/hosts -------> sudo를 사용하여 파일을 열거나 명령을 실행하는 데 시간이 오래 걸립니다. 명령을 실행하면 일반적인 결과가 나타납니다. sudo: unable to resolve host myhost.mydomain: Name or service not known

문제는 sudo 명령이 지연된다는 것입니다. 위의 2단계 프로세스를 사용하면 (sudo 명령에서 눈에 띄는 지연을 관찰하지 않고) 다른 네트워크에 연결된 장치의 호스트 이름을 쉽게 변경할 수 있습니다. 이 네트워크에 연결된 장치에서만 sudo 대기 시간 문제가 발생합니다.

더 많은 실험 - 호스트 이름 변경 순서를 반대로 할 때, 즉

  1. sudo nano /etc/hosts - # myhost.mydomain 추가
  2. hostnamectl set-hostname myhost.mydomain

모든 것이 잘 작동하며 Sudo 지연 문제가 관찰되지 않았습니다. 이로 인해 DNS 확인에 문제가 있을 수 있다고 믿게 됩니다(또는 오해하게 됩니다). 하지만 그 외에는 이 특정 네트워크의 시스템에서 이러한 대기 시간이 관찰되는 이유를 알 수 없습니다.

호스트 이름 설정 전후에 systemd-hostnamed 서비스의 로그를 확인했는데 오류가 관찰되지 않았습니다.

좀 더 효율적으로 디버깅하는 방법을 알려주세요.

답변1

저도 같은 문제가 있었습니다. hostnamectl이 /etc/hostname을 업데이트했지만 /etc/hosts는 업데이트하지 않았는데, 이것이 sudo 실행 속도를 매우 느리게 만드는 문제였습니다.

old_name내가 해결한 방법은 /etc/hosts를 수동으로 편집하는 것이었습니다. 예를 들어 이전 호스트 이름 " "을 " " 로 바꾸려면 new_name완료해야 하는 두 단계가 있습니다.

$ sudo hostnamectl set-hostname new_name

시각화하기 위해 예를 들면 다음과 같습니다.

$ cat /etc/hosts  
127.0.0.1   localhost
127.0.1.1   old_name
#...

다음과 같이 업데이트해 보겠습니다.

$ sudo vim /etc/hosts
127.0.0.1   localhost
127.0.1.1   new_name
#...

그 후 실행 sudo ls해 보니 평소처럼 빠르게 작동했습니다.

관련 정보