본문 바로가기
푸닥거리

sudo: unable to resolve host Name or service not known

by ┌(  ̄∇ ̄)┘™ 2022. 3. 29.
728x90

리눅스에서 sudo 명령을 실행할 때마다 다음 경고가 뜨는 경우가 있습니다. 명령은 실행되지만 매번 지연되고 거슬리죠.

sudo: unable to resolve host [호스트명]: Name or service not known

원인

sudo는 실행 시 현재 호스트명(hostname)을 IP로 변환(resolve)하려 시도합니다. 그런데 /etc/hostname에 적힌 이름이 /etc/hosts 파일에 매핑되어 있지 않으면 변환에 실패해 이 경고가 나옵니다. 호스트명을 바꾼 뒤 hosts 파일을 갱신하지 않았을 때 흔히 발생합니다.

해결 — hosts 파일에 호스트명 등록

두 파일의 호스트명을 일치시킵니다. /etc/hostname의 이름을 확인하고:

cat /etc/hostname
# 예: myserver

/etc/hosts에 그 이름을 127.0.1.1로 매핑하는 줄을 추가합니다.

# /etc/hosts
127.0.0.1    localhost
127.0.1.1    myserver     # ← 호스트명 추가

저장하면 즉시 반영되어 경고가 사라집니다(재부팅 불필요).

참고

  • 127.0.1.1을 쓰는 이유 — Debian/Ubuntu 관례로, 고정 IP가 없는 호스트의 이름을 루프백에 매핑하는 표준 방식입니다.
  • 호스트명을 바꿀 때는 sudo hostnamectl set-hostname 새이름을 쓰고, hosts 파일도 함께 갱신하면 이 문제를 예방할 수 있습니다.
  • 클라우드 인스턴스(EC2 등)에서 호스트명을 변경한 뒤 자주 만나는 경고입니다.
728x90

댓글