CentOS 7 및 systemd 기반 리눅스 시스템에서
hostnamectl명령어를 사용하여 호스트네임을 영구적으로 변경하는 방법을 정리합니다. 변경 후 쉘 프롬프트에 즉시 반영하는 방법과/etc/hosts파일 수정의 중요성을 포함합니다.
0. 배경 지식 (Context)
호스트네임은 네트워크 상에서 서버를 식별하는 이름입니다. 과거에는 /etc/sysconfig/network 파일을 수정하고 재부팅해야 했으나, CentOS 7부터는 hostnamectl 명령어를 통해 재부팅 없이 즉시 설정을 영구 반영할 수 있습니다.
Test Environment
- OS: CentOS 7.2
- System: systemd based
1. 호스트네임 변경 (hostnamectl)
hostnamectl 명령은 커널 호스트네임 설정과 /etc/hostname 파일 수정을 동시에 수행합니다.
현재 상태 확인
hostnamectl status
변경 명령어
# 구문: hostnamectl set-hostname [새로운_이름]
hostnamectl set-hostname web-server-01
2. 변경 사항 확인 및 적용 (Verification)
명령어 실행 즉시 시스템 설정은 변경되지만, 현재 로그인된 터미널의 프롬프트(Shell Prompt)에는 반영되지 않을 수 있습니다.
변경 확인
# 1. 설정값 확인
hostname
# 2. 상세 확인
hostnamectl status
터미널 프롬프트 갱신
로그아웃 후 다시 로그인(Reconnect)하면 프롬프트가 변경됩니다. 재접속 없이 바로 확인하려면 아래 명령어를 사용하세요.
# 현재 쉘 세션 갱신
exec bash
결과: [root@old-name ~]# 에서 [root@web-server-01 ~]# 로 변경됨.
3. 필수 후속 조치: /etc/hosts 수정
호스트네임을 변경했다면, 서버 자신이 자신의 이름을 찾아갈 수 있도록 로컬 DNS 설정 파일인 /etc/hosts도 반드시 수정해야 합니다. 이를 누락하면 sudo 명령어 실행이 느려지거나 일부 애플리케이션 기동 시 에러가 발생할 수 있습니다.
파일 수정
vi /etc/hosts
수정 내용
기존 호스트네임이 적힌 부분을 새로운 이름으로 변경하거나 추가합니다.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# 변경된 호스트네임 추가 (자신의 IP 또는 Loopback에 매핑)
127.0.0.1 web-server-01
Tip: 클러스터링(Cluster) 환경이나 WAS(WebSphere, JBoss) 환경에서는
127.0.0.1 대신 실제 서버의 공인 IP(또는 사설 IP)에 호스트네임을 매핑하는 것이 좋습니다.