SW개발/우분투 리눅스

[우분투 22.04] 호스트 주소를 해석할 수 없습니다. 오류 조치 방법

world class product 2022. 9. 8. 13:27

 

우분투 리눅스를 20.04에서 22.04로 업그레이드 한 이후로 여러 가지 문제가 발생했습니다. proftpd 업데이트 안 되는 문제도 있었고, 한글 입력이 안 되는 문제고 있었고, firefox가 snap package라서 이 점도 제법 불편한 것 같습니다.

본 페이지에서는 우분투 22.04에서 "호스트 주소를 해석할 수 없습니다."라는 에러 메시지가 발생할 때 이 문제를 해결하는 방법에 대해서 설명드리고자 합니다.

 

1. 문제의 증상

우분투 리눅스 20.04에서 22.04로 업그레이드한 이후로 인터넷 접속이 제대로 되지 않았습니다. wget 같은 명령을 통해서 인터넷에서 파일을 다운로드하려고 해 봤더니, "호스트 주소를 해석할 수 없습니다."라는 메시지가 나오면서 파일이 다운로드 되지 않았습니다.

 

2. 문제의 원인 분석

이 문제는 도메인 네임을 IP주소로 변환할 수 없어서 발생하는 문제입니다. /etc/resolv.conf 파일의 내용을 살펴봐야 합니다.

$ cat /etc/resolv.conf

위의 명령을 통해서 /etc/resolv.conf 파일을 살펴보니 DNS 설정이 올바르지 않다는 것을 알 수 있었습니다.

# Dynamic resolv.conf(5) file for glibc resolver(3) generted by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the system-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

naeserver 127.0.0.53
sarch DOMAINS

네임 서버 설정이 올바르지 않다는 것을 알 수 있습니다.

 

3. 임시 조치 방법

임시로 조치할 수 있는 방법은 /etc/resolv.conf 파일을 열어서 nameserver를 추가하는 방법입니다. 

$ sudo vi /etc/resolv.conf

선호하는 편집기로 열고, DNS1과 DN2를 nameserver로 추가해주면 됩니다.

# Dynamic resolv.conf(5) file for glibc resolver(3) generted by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the system-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
nameserver aaa.bbb.ccc.ddd
nameserver eee.fff.ggg.hhh
sarch DOMAINS

 

위와 같이 입력하면 해당 문제가 해결됩니다. 하지만 이 방법은 임시 조치 방법에 불과합니다.

# Dynamic resolv.conf(5) file for glibc resolver(3) generted by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the system-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
nameserver aaa.bbb.ccc.ddd
nameserver eee.fff.ggg.hhh
sarch DOMAINS

설정 파일의 2번째 줄에 있는 주석을 보시면 아시겠지만, 이 설정 파일을 편집하기 말라고 되어 있습니다. 재부팅하면 수정한 내용이 모두 초기화되어 버립니다.

 

4. 영구 조치 방법

이 문제가 발생하는 원인은 새롭게 업그레이드한 버전은 22.04인데, /etc/resolve.conf 파일의 설정은 20.04 또는 그 이전의 버전이기 때문입니다.

아래의 명령을 수행해서 /etc/resolv.conf 파일을 살펴보면, symbolic link로 되어 있다는 것을 알 수 있습니다.

$ ls -all /etc/resolv.conf

/etc/resolv.conf 파일이 /run/resolvconf/resolv.con 파일을 심볼릭 링크로 가리키고 있다는 것을 알 수 있습니다.

xrwxrwxrwx 1 root root 29 11월 21 2018 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

 

하지만 22.04에서는 /run/systemd/resolv/stub-resolv.conf 파일을 symbolic link 걸어줘야 합니다.

$ sudo rm /etc/resolv.conf
$ sudo ln -s ../run/systemd/resolve/resolv.conf /etc/resolv.conf

기존의 링크인 /etc/resolv.conf 파일은 제거하고, /run/systemd/resolv/resolv.conf 파일로 다시 심볼릭 링크를 생성해줍니다.

 

cat 명령으로 /etc/resolv.conf 파일을 확인해봅니다.

$ cat /etc/resolv.conf

 

아래와 같이 /etc/resolv.conf 파일의 내용이 바뀐 것을 알 수 있습니다.

# This is /run/systemd/resolv/resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients diectly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a differen symlink.
#
# See man:systemd-resolved.service(8) for details about the supported mode of
# operation fo /etc/resolv.conf

nameserver aaa.bbb.ddd.eee
nameserver fff.ggg.hhh.iii
search DOMAINS

 

결론

만약 우분투 22.04 이전 버전에서 22.04 버전으로 업그레이드 이후에 "호스트 주소를 해석할 수 없습니다."라는 에러가 발생한다면, /etc/resolv.conf 파일을 삭제하고 /run/systemd/resolve/resolv.conf 파일로 새로운 심볼릭 링크를 생성하시기 바랍니다.

 

참고할만한 글들

 

Could not resolve host: github.com 해결 방법

티스토리 블로그를 개설한지 얼마되지 않았는데 이상하게 블로그가 통째로 다음에서 검색이 안되기 시작했습니다. 구글 애드센스를 달기 위해서 나름 열심히 노력하고 있는데 특정 글이 아닌

worldclassproduct.tistory.com

 

이상입니다.