리눅스 호스트명 변경 (예전 방법)

HOSTNAME 변경
리눅스 호스트명 변경
호스트 이름 변경

1 사전확인

현재 호스트명을 확인해보자.

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# cat /etc/sysconfig/network | grep HOSTNAME
HOSTNAME=localhost.localdomain

2 방법 1: 명령어로 변경

2.1 즉시 변경

다음 중 두가지 명령어 중 하나를 실행하면 된다.

hostname 호스트명
echo 호스트명 > /proc/sys/kernel/hostname
  • 새로 로그인할 때는 이것이 적용된다.
  • 재부팅시에는 초기화될 것이다.[1]
실행 예시
[root@localhost ~]# hostname jmnote
[root@localhost ~]# hostname
jmnote 
[root@localhost ~]# su -
[root@jmnote ~]#

2.2 재부팅시 변경

레드햇 계열
vi /etc/sysconfig/network

파일 내용 중 HOSTNAME 부분을 수정한다.

HOSTNAME=호스트명
우분투
vi /etc/hostname

파일 내용 전체가 호스트명이다. 원하는 호스트명으로 수정하자.

3 방법 2: setup으로 변경

setup으로 바꾸면 방법 1에서 말하는 영구적용과 즉시적용이 동시에 된다.[2]

setup
  • [Network configuration] --- [DNS configuration]
  • "DNS configuration" --- Hostname: 원하는호스트명 --- [Ok]
  • [Save&Quit]
  • [Quit]

4 후속작업: /etc/hosts 변경

/etc/hosts는 IP에 대한 호스트명 정보가 있는데, 자기 자신을 가리키는 정보도 들어가 있다. 호스트명을 변경했다면 이쪽도 수정해주는 것이 좋다.

vi /etc/hosts

아래 내용을 참고하여 작성한다.

127.0.0.1	localhost	jmnote
::1	localhost	jmnote
→ 1행은 IPv4, 2행은 IPv6에 대한 것임

5 한방 스크립트

  • 재부팅 없이 적용 및 확인을 한번에 할 수 있음
  • 레드햇 계열, 우분투 모두 사용가능
NEW_HOSTNAME=새호스트명
OLD_HOSTNAME=$HOSTNAME
HOSTNAME=$NEW_HOSTNAME
echo $HOSTNAME > /proc/sys/kernel/hostname
sed -i "s/$OLD_HOSTNAME/$HOSTNAME/" /etc/hosts
sed -i "s/$OLD_HOSTNAME/$HOSTNAME/" /etc/hostname 2> /dev/null
sed -i "s/HOSTNAME=$OLD_HOSTNAME/HOSTNAME=$HOSTNAME/" /etc/sysconfig/network 2> /dev/null
echo "\$HOSTNAME=$HOSTNAME"
grep -Hn '' /proc/sys/kernel/hostname
grep -Hn '' /etc/hosts
grep -Hn '' /etc/hostname 2> /dev/null
grep -Hn '' /etc/sysconfig/network 2> /dev/null
→ 프롬프트에 찍히는 호스트명까지 변경되는 것을 확인하려면 새 콘솔(또는 SSH 세션)을 열어야 한다.

6 같이 보기

7 주석

  1. /etc/sysconfig/network 에 설정된 호스트명이 적용되기 때문. 다음 문단 참조.
  2. GUI(?)에서 수행되기 때문에 자동화 bash 스크립트를 만드는 것이 어렵다. 때문에 필자는 방법 1을 선호한다.

8 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}