안녕하세요, 촌놈 개발자입니다!

리눅스 서버를 처음 세팅하거나 여러 대의 인스턴스를 관리하다 보면, 터미널창에 둥둥 떠 있는 localhost나 알 수 없는 문자열 때문에 헷갈렸던 경험 다들 있으실 겁니다. 서버가 많아질수록 '얘가 무슨 역할을 하는 애였더라?' 싶을 때가 많죠. 이럴 때 가장 먼저 손대야 하는 작업이 바로 서버의 '문패'를 달아주는 일입니다. 오늘은 리눅스 서버 관리의 기본 중의 기본, 호스트네임(Hostname)의 개념부터 OS별 영구 변경 방법, 그리고 윈도우와의 비교까지 한 번에 깔끔하게 정리해 보겠습니다.

1. 호스트네임(Hostname)이란? 용도 및 영향 범위

호스트네임은 쉽게 말해 네트워크 상에서 컴퓨터(서버)를 식별하기 위해 부여하는 고유한 이름입니다. 숫자로 된 복잡한 IP 주소 대신 사람이 읽고 구별하기 쉽게 만든 일종의 닉네임이죠. 터미널을 열었을 때 username@hostname 형태로 가장 먼저 우리를 반겨주는 녀석이기도 합니다.

이 호스트네임은 단순히 화면에 보이는 이름 역할만 하는 것이 아닙니다. 내부적으로는 서버 간 통신(Node-to-Node), 메일 서버(SMTP)의 발신 도메인 설정, 각종 모니터링 도구 및 로깅 시스템에서 서버를 식별하는 기준이 됩니다. 만약 호스트네임을 모호하게 설정해 두면, 대규모 인프라 환경에서 엉뚱한 서버에 명령을 날리거나 로그가 뒤섞이는 대참사가 발생할 수 있으므로 프로젝트 초기나 서버 도입 시 명확한 규칙(예: prod-web-db-01 등)으로 정의하는 것이 매우 중요합니다.

2. OS 유형별 호스트네임 관리 구조 (최신 버전 기준)

리눅스는 OS 계열에 따라 호스트네임 정보를 저장하고 관리하는 텍스트 파일의 구조가 약간씩 다릅니다. 현재 엔터프라이즈 환경에서 가장 많이 쓰이는 최신 리눅스 버전들을 기준으로 실제 파일 내부의 코드 형태를 살펴보겠습니다.

■ Ubuntu 계열 (Ubuntu 24.04 LTS 등)

데비안 계열인 우분투는 주로

/etc/hostname

파일에 호스트네임 텍스트 하나만 단독으로 깔끔하게 저장됩니다. 시스템이 부팅될 때 이 파일을 읽어 이름을 확정합니다.

$ cat /etc/hostname
ubuntu-web-server

■ RedHat 계열 (Rocky Linux 9, CentOS Stream 9 등)

과거 전통적인 CentOS 7/8 버전은 종료되었지만, 레드햇의 업스트림 커널 역할을 하는 CentOS Stream 9 형태로 CentOS 계열은 여전히 활발히 유지 및 운영되고 있습니다. 이 최신 레드햇 계열 리눅스들은 과거 구버전의

/etc/sysconfig/network

구조 대신, 네트워크 관리 도구(NetworkManager)와 연동되어 우분투와 동일하게

/etc/hostname

파일을 공통으로 사용하여 관리 편의성을 높였습니다.

$ cat /etc/hostname
centos-stream-server
공통 핵심 파일: 어떤 OS든 네트워크 상에서 자기 자신을 올바르게 찾아가도록 매핑해 주는 /etc/hosts 파일 역시 호스트네임 변경 시 반드시 함께 관리되어야 하는 핵심 구조입니다.
반응형

3. 호스트네임 변경 방법 및 즉시 적용 단계

최근 리눅스(systemd 기반)는 명령어 한 줄로 공통 변경이 가능합니다. 실제 조회부터 변경, 그리고 네트워크 설정 수정까지 순서대로 알아보겠습니다.

Step 1. 현재 호스트네임 조회 (hostname vs hostnamectl)

리눅스에서 이름을 조회하는 방법은 크게 두 가지 명령어의 다형성을 가집니다. 단순 이름만 한 줄로 빠르게 확인하고 싶다면

hostname

을, OS 버전과 커널 정보를 포함한 전체 프로필을 보고 싶다면

hostnamectl

을 사용합니다.

# 1. 단순 호스트네임 텍스트만 조회할 때
$ hostname
localhost.localdomain

# 2. 시스템 프로필을 포함하여 상세 조회할 때
$ hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
  Operating System: CentOS Stream 9
            Kernel: Linux 5.14.0-...
      Architecture: x86-64

Step 2. 호스트네임 영구 변경 명령 실행

우분투, 로키, CentOS 모두 공통으로 사용할 수 있는 영구 변경 명령어입니다.

sudo hostnamectl set-hostname [원하는-새-호스트네임]

Step 3. /etc/hosts 파일 수정 (네트워크 꼬임 방지)

호스트네임만 바꾸면 시스템이 자기 자신을 찾지 못해 내부 통신 지연이나 에러가 발생할 수 있습니다.

sudo vi /etc/hosts

명령으로 파일을 열어 내부를 수정해 줍니다.

# [수정 전 Before 예시]
127.0.0.1   localhost localhost.localdomain old-hostname
::1         localhost localhost.localdomain old-hostname

# [수정 후 After 예시]
127.0.0.1   localhost localhost.localdomain [새-호스트네임]
::1         localhost localhost.localdomain [새-호스트네임]

Step 4. 재부팅 없이 즉시 적용하기

리눅스는 systemd가 커널 메모리의 호스트네임을 실시간으로 바꾸기 때문에 굳이 재부팅을 하지 않아도 됩니다. 다만 터미널 창 프롬프트에 바로 반영되게 하려면 아래 명령어를 입력해 셸을 재실행하거나, 현재 SSH 세션을 종료하고 새로 접속하시면 됩니다.

exec bash
💡 주의 및 팁: 가끔 특수한 클라우드 환경이나 구형 네트워크 데몬이 꼬여 간헐적으로 이름 반영이 완전히 되지 않는 경우가 있습니다. exec bash 호출 이후에도 호스트네임 인식이 비정상적이거나 동작이 원활하지 않다면 안심하고 sudo reboot 명령어를 통해 시스템을 1회 재부팅 해주시는 것이 확실합니다.

4. 윈도우(Windows) 환경과 비교하면?

우리가 익숙하게 사용하는 윈도우 OS에도 당연히 호스트네임 개념이 존재하며, 보통 '컴퓨터 이름'이라고 부릅니다. 리눅스가 텍스트 기반의 설정 파일과 CLI 명령어로 이름을 바꾼다면, 윈도우는 직관적인 GUI 환경을 제공하죠.

윈도우에서 이 이름을 변경하려면 [설정] ➡️ [시스템] ➡️ [정보] 메뉴로 이동하거나, 실행 창(Win + R)에 sysdm.cpl을 입력해 '시스템 속성' 창을 띄운 뒤 [컴퓨터 이름] 탭의 [변경] 버튼을 누르면 됩니다. 윈도우는 리눅스와 달리 이름을 바꾼 후 반드시 시스템을 '재부팅'해야만 변경된 컴퓨터 이름이 네트워크와 OS 전체에 최종 적용된다는 차이점이 있습니다.

리눅스 서버 세팅의 첫 단추인 호스트네임 설정! 미루지 말고 지금 깔끔하게 정리해 보시는 건 어떨까요? 궁금한 점이 있다면 언제든 댓글로 남겨주세요. 촌놈 개발자였습니다!

반응형
블로그 추천 글
블로그 운영자 프로필 이미지

촌놈 개발자 이야기

개발을 업으로 삼아 살아가며 관심 있는 기술 정보를 정리하고 공유. 프로그래밍과 IT 분야의 다양한 이야기부터 일상 속 소소한 생각까지, 꾸준히 기록하며 함께 성장해 나가는 개발자 일기