Linux

linux hostname / 리눅스 호스트네임 (초안)

asung123 2023. 3. 27. 03:49

 

 

linux의 호스트네임은 static, transient, pretty 세가지 종류가 있습니다.

 

 

transient hostname

이중 linux kernel에서 인식하는 hostname이 transient 호스트네임으로 리눅스 커널의 파라미터로 메모리상에 존재합니다.

파라미터는 아래와 같이 확인 가능

# 커널 파라미터 조회
$ sysctl kernel.hostname

# 커널 파일시스템을 통해서, 커널 파리미터 조회
$ cat /proc/sys/kernel/hostname

 

위 커널 파라미터를 직접 수정해서 transient 호스트네임을 변경할 수 있습니다.

흔히 hostname 변경을 위해 사용하는 명령어들도 transient hostname 변경을 위해서 내부적으로 위 커널 파리미터를 변경합니다.

(hostname, hostnamectl)

 

 

 

static hostname

서버가 재부팅될때 정해지는 hostname으로 보통의 linux 배포판은 /etc/hostname에 저장되어있습니다.

물론 해당 파일을 변경한다고 해서, 커널 파라미터의 hostname이 변경되지는 않습니다.

하지만 서버가 재부팅할 경우 대부분의 linux OS들은 /etc/hostname 파일 내용으로 커널 파라미터의 hostname을 셋팅합니다.

 

그렇기 때문에 static hostname을 찾는 경우, /etc/hostname 파일의 내용을 load하여 확인 할 수 있습니다.

 

systemd-hostname

 

systemd-hostnamed.service(8) - Linux manual page

systemd-hostnamed.service(8) — Linux manual page SYSTEMD-HOSTNAMED.SERVICE(8)emd-hostnamed.serviceMD-HOSTNAMED.SERVICE(8) NAME         top systemd-hostnamed.service, systemd-hostnamed - Daemon to control system hostname from programs SYNOPSIS    

man7.org

systemd 기반으로 hostname을 관리하는 데몬입니다.

hostnamectl 명령어는 대표적으로 systemd-hostname에 포함되는 하위 실행파일입니다.

/etc/hostname이나 커널파리미터를 수동으로 변경한 경우, hostnamectl status에 정보가 즉각 반영되지 않을 수 있습니다.

이런 경우, systemctl restart systemd-hostname 혹은 일정 시간을 기다리면 자동으로 systemd-hostname 데몬이 /etc/hostname과 kernel.hostname을 동기화합니다.