sudo 명령어를 사용할 때 ‘sudo: unable to resolve host’ 오류가 발생하는 경우가 있습니다. 처음에는 이 문제가 어떤 원인으로 발생했는지 알지 못했으나, 인스턴스를 변경하면서 호스트 이름을 IP 주소로 변환하지 못해 발생한 문제임을 알게 되었습니다.
이 문제를 해결하는 방법은 /etc/hosts 파일에서 호스트 이름과 IP 주소의 매핑을 설정하는 것입니다. 이 과정은 어렵지 않으므로 아래의 설명을 참고하시면 쉽게 해결하실 수 있습니다.
아래의 설명은 OpenLiteSpeed 웹 서버, 그리고 라이트세일 우분투 서버를 기준으로 작성되었음을 참고하시기 바랍니다.
목차
unable to resolve host 오류
해당 오류는 서버가 자신의 호스트 이름을 찾지 못해 발생합니다. 서버는 로컬 네트워크에서 호스트 이름을 IP 주소로 변환해야 할 때, 이를 해결하기 위해 /etc/hosts 파일을 참조합니다.
하지만 /etc/hosts 파일에 호스트 이름과 IP 주소 매핑이 제대로 되어 있지 않으면 인식하지 못하고 오류가 발생할 수 있습니다.
호스트 이름 확인
hostname
라이트세일에 SSH로 접속한 후, 위의 코드에서 hostname 명령어를 입력하면 서버에 설정된 호스트 이름을 확인할 수 있습니다.
/etc/hosts 파일 열기
sudo nano /etc/hosts
호스트 이름을 확인한 후에는 호스트 이름과 IP 주소가 올바르게 매핑되어 있는지 점검해야 합니다. 이를 위해 위의 명령어인 ‘sudo nano /etc/hosts ‘를 입력하여 매핑 상태를 확인합니다.
127.0.0.1 localhost
172.26.xx.xx ip-172-26-xx-xx
/etc/hosts 파일을 열면 위와 같은 형식으로 나타납니다. 여기서 예시로 제시된 IP 주소인 172.26.xx.xx은 서버의 IP 주소이며, ip-172-26-xx-xx은 해당 서버의 호스트 이름입니다. 서버의 호스트 이름과 IP 주소는 사용자의 환경에 맞게 수정해야 합니다.
위의 내용을 보면 수정 방법을 이해하기 어려울 수 있습니다. 그래서 아래에 예시를 통해 수정하는 방법을 설명드리겠습니다.
/etc/hosts 수정 방법
라이트세일을 기준으로 설명드리면, 인스턴스에 접속하면 위와 같은 정보를 확인할 수 있습니다. 이때, 고정 IP 주소와 프라이빗 IPv4 주소 두 가지를 기억해 두시면 됩니다.
127.0.0.1 localhost
172.26.xx.xx ip-172-26-xx-xx
15.165.xx.xx ip-15-165-xx-xx
이제 명령어 sudo nano /etc/hosts를 입력하여 인스턴스 정보에 있는 IP 주소를 추가하고 매핑해 주시면 됩니다. 위의 IP 주소는 예시이므로, 자신의 IP 주소를 추가해야 합니다.
- 127.0.01 localhost: 로컬 호스트를 그대로 유지
- 172.26.xx.xx ip-172-26-xx-xx: 서버의 프라이빗 IP와 호스트 이름을 매핑합니다.
- 15.165.xx.xx ip-15-165-xx-xx: 고정 공인 IP를 적절하게 매핑합니다.
위의 설명에 따라 /etc/hosts 파일을 수정한 후, sudo ls와 같은 명령어를 입력하여 동일한 문제가 발생하지 않는지 확인합니다. 만약 ‘sudo: unable to resolve host’ 오류 메시지가 나타나지 않는다면, 문제는 해결된 것입니다.
만약 ‘sudo: unable to resolve host’ 문제가 해결되지 않는다면, IP 주소를 정확하게 입력했는지와 파일 권한(chmod 644)이 올바르게 설정되었는지 확인할 필요가 있습니다.
‘sudo: unable to resolve host’ 문제는 인스턴스를 처음 시작하거나 교체할 때 자주 발생하는 오류입니다. 위의 설명을 참고하여 /etc/hosts 파일을 수정함으로써 매핑 문제를 해결해 보시기 바랍니다.
▶ CyberPanel에 Opcache 설치해서 속도 향상 하는 방법