본문 바로가기

hostname 명령어 정리

@도움이되는북마크2025. 12. 7. 11:30

# hostname 명령어 정리

## 1. 기본 사용법

### 현재 호스트 이름 확인
```bash
hostname
```

### 호스트 이름 상세 정보 확인
```bash
hostname -A      # 모든 FQDN (정규화된 도메인 이름) 나열
hostname -a      # 별칭(alias) 이름 출력
hostname -d      # DNS 도메인 이름 출력
hostname -f      # FQDN (정규화된 도메인 이름) 출력
hostname -i      # 호스트의 IP 주소 출력
hostname -I      # 모든 네트워크 인터페이스의 IP 주소 출력
hostname -s      # 짧은 호스트 이름 출력 (도메인 제외)
```

## 2. 호스트 이름 설정

### 임시로 호스트 이름 변경 (재부팅 시 초기화)
```bash
sudo hostname 새로운호스트이름
```

### 영구적으로 호스트 이름 변경
```bash
# Ubuntu/Debian
sudo hostnamectl set-hostname 새로운호스트이름

# RHEL/CentOS/Fedora
sudo hostnamectl set-hostname 새로운호스트이름

# 또는 직접 파일 수정
sudo vi /etc/hostname  # 호스트명만 입력하고 저장
sudo vi /etc/hosts     # 127.0.0.1 localhost 새로운호스트이름 추가
```

## 3. 호스트 정보 확인 명령어

### hostnamectl (systemd 시스템)
```bash
hostnamectl                    # 모든 호스트 정보 표시
hostnamectl status             # 호스트 상태 정보
hostnamectl set-hostname 이름  # 호스트 이름 설정
hostnamectl set-icon-name 이름 # 아이콘 이름 설정
hostnamectl set-chassis 유형   # 시스템 유형 설정 (desktop, laptop, server 등)
```

### 네트워크 관련 호스트 정보
```bash
dnsdomainname     # DNS 도메인 이름 출력
nisdomainname     # NIS 도메인 이름 출력
ypdomainname      # YP 도메인 이름 출력
```

## 4. 호스트 이름 관련 파일

### 주요 설정 파일
- `/etc/hostname` - 호스트 이름 저장 파일
- `/etc/hosts` - 호스트 이름과 IP 매핑 파일
- `/etc/sysconfig/network` - RHEL 계열 네트워크 설정 파일

### /etc/hosts 파일 예시
```
127.0.0.1   localhost localhost.localdomain
192.168.1.10 myserver.example.com myserver
```

## 5. 실용적인 예제

### 현재 시스템의 모든 네트워크 정보 확인
```bash
hostname -I     # 모든 IP 주소
hostname -i     # 호스트의 IP 주소
hostname -f     # 전체 도메인 이름
```

### 스크립트에서 사용하기
```bash
#!/bin/bash
SERVER_NAME=$(hostname)
SHORT_NAME=$(hostname -s)
IP_ADDRESS=$(hostname -I | awk '{print $1}')

echo "서버 이름: $SERVER_NAME"
echo "짧은 이름: $SHORT_NAME"
echo "IP 주소: $IP_ADDRESS"
```

## 6. 문제 해결

### 호스트 이름이 변경되지 않을 때
1. 재부팅
```bash
sudo reboot
```

2. 네트워크 서비스 재시작
```bash
# systemd 시스템
sudo systemctl restart systemd-hostnamed

# 네트워크 매니저
sudo systemctl restart NetworkManager
```

3. 캐시 삭제
```bash
sudo systemd-resolve --flush-caches
```

### DNS 확인
```bash
nslookup $(hostname)
dig $(hostname)
```

## 7. 옵션 요약

| 옵션 | 설명 |
|------|------|
| `-a` | 별칭(alias) 이름 출력 |
| `-A` | 모든 FQDN 나열 |
| `-d` | DNS 도메인 이름 출력 |
| `-f` | FQDN (정규화된 도메인 이름) 출력 |
| `-F` | 파일에서 호스트 이름 읽기 |
| `-i` | 호스트의 IP 주소 출력 |
| `-I` | 모든 네트워크 인터페이스의 IP 주소 출력 |
| `-s` | 짧은 호스트 이름 출력 |
| `-V` | 버전 정보 출력 |
| `-v` | 상세 정보 출력 |
| `-y` | NIS/YP 도메인 이름 출력 |

## 참고사항
- 호스트 이름 변경 후에는 `/etc/hosts` 파일도 함께 수정하는 것이 좋습니다
- 영구적인 변경을 위해서는 `hostnamectl` 명령어나 설정 파일을 직접 수정해야 합니다
- 일부 옵션은 시스템 구성에 따라 동작이 다를 수 있습니다

도움이되는북마크
@도움이되는북마크 :: FReeWARe.kR

지나가다 스치면 도움이... 그래서 언제나 온라인...

공감하셨다면 구독도 환영합니다! 🤗

목차