ホスト名の確認と変更方法
Ubuntu 26.04 LTS Server のホスト名を確認・変更する手順を解説します。ホスト名は hostnamectl コマンドで扱い、恒久的な設定と一時的な設定を区別して管理します。
ホスト名を確認する
hostnamectl を引数なしで実行すると、ホスト名と機器の情報がまとめて表示されます。
hostnamectlkazulog@sv1:~$ hostnamectl
Static hostname: sv1
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: fa7f95751e0a4b7d896ac94fe4e90998
Boot ID: d00a5c4e8c18417081176227877c6282
Virtualization: kvm
Operating System: Ubuntu 26.04 LTS
Kernel: Linux 7.0.0-30-generic
Architecture: x86-64
Hardware Vendor: QEMU
Hardware Model: Standard PC _i440FX + PIIX, 1996_
Hardware Version: pc-i440fx-8.0
Firmware Version: 1.16.3-debian-1.16.3-2
Firmware Date: Tue 2014-04-01
Firmware Age: 12y 5month 1w 3d
kazulog@sv1:~$ hostname
sv1
kazulog@sv1:~$ uname -n
sv1
kazulog@sv1:~$| 項目 | 内容 |
|---|---|
Static hostname | 恒久的なホスト名。/etc/hostname に保存され、再起動後も維持される |
Transient hostname | 一時的なホスト名。カーネルが保持し、再起動すると Static の値に戻る。Static と同じ場合は表示されない |
Pretty hostname | 表示用の名前。空白や記号を使える。設定した場合のみ表示される |
Machine ID / Boot ID | システムと起動ごとの識別子 |
Virtualization | 仮想化基盤の種別 |
hostname と uname -n は、どちらも現在有効なホスト名(Transient があればその値)を表示します。
ホスト名を恒久的に変更する
sudo hostnamectl set-hostname [NAME]| 入力箇所 | 入力内容 |
|---|---|
| [NAME] | 設定するホスト名 |
kazulog@sv1:~$ sudo hostnamectl set-hostname webserver
kazulog@sv1:~$ hostnamectl | head -3
Static hostname: webserver
Icon name: computer-vm
Chassis: vm 🖴
kazulog@sv1:~$ hostname
webserver
kazulog@sv1:~$ cat /etc/hostname
webserver
kazulog@sv1:~$/etc/hostname が書き換わり、再起動後も維持されます。
実行中のシェルのプロンプトはすぐには変わりません。 プロンプトはログイン時のホスト名を表示しているためです。ログインし直すと新しいホスト名になります。
kazulog@webserver:~$ hostname
webserver
kazulog@webserver:~$ whoami
kazulog/etc/hosts との関係
hostnamectl set-hostname は /etc/hostname を更新しますが、/etc/hosts は更新しません。上の実行例でも、ホスト名を変更した後の /etc/hosts には元の名前が残っています。
kazulog@sv1:~$ grep 127.0 /etc/hosts
127.0.1.1 ubuntu sv1
127.0.0.1 localhost
kazulog@sv1:~$ sudo true
kazulog@sv1:~$ echo $?
0このため、システムによっては sudo の実行時に sudo: unable to resolve host という警告が出ることがあります。ただし Ubuntu 26.04 では、この警告は通常出ません。 名前解決を担う systemd-resolved が自分自身のホスト名に応答するためです。
kazulog@webserver:~$ getent hosts webserver; echo exit=$?
fe80::5054:ff:fe6f:31df webserver
exit=0
kazulog@webserver:~$ getent hosts sv1
127.0.1.1 ubuntu sv1
kazulog@webserver:~$ sudo -n true; echo exit=$?
exit=0getent が自分自身のリンクローカルアドレスを返しており、sudo も警告なく実行できています。警告が出る環境では、/etc/hosts の 127.0.1.1 の行を新しいホスト名に書き換えてください。
ホスト名を一時的に変更する
再起動すると元に戻る一時的な変更には、hostname コマンドを使います。
sudo hostname [NAME]kazulog@webserver:~$ sudo hostname dbserver
kazulog@webserver:~$ hostname
dbserver
kazulog@webserver:~$ hostnamectl | head -3
Transient hostname: dbserver
Static hostname: webserver
Pretty hostname: Kazulog Web Server
kazulog@webserver:~$ cat /etc/hostname
webserver
kazulog@webserver:~$ uname -n
dbserverhostnamectl の表示に Transient hostname が現れ、Static hostname とは別の値になります。/etc/hostname は変わっていないため、再起動すると Static の値に戻ります。
hostnamectl set-hostname --transient [NAME] でも一時的な変更ができますが、Static hostname が設定済みの場合は反映されません。次のように案内が表示されます。
kazulog@webserver:~$ sudo hostnamectl set-hostname --transient dbserver
Hint: static hostname is already set, so the specified transient hostname will not be used.
kazulog@webserver:~$ hostnamectl | head -2
Static hostname: webserver
Icon name: computer-vm
kazulog@webserver:~$ hostname
webserver
kazulog@webserver:~$ cat /etc/hostname
webserver
kazulog@webserver:~$一時的に変更したい場合は hostname コマンドを使ってください。
表示用の名前(Pretty hostname)
ホスト名には使えない空白や記号を含む名前を、表示用として別に設定できます。
sudo hostnamectl set-hostname --pretty "[NAME]"kazulog@webserver:~$ sudo hostnamectl set-hostname --pretty 'Kazulog Web Server'
kazulog@webserver:~$ hostnamectl | head -3
Static hostname: webserver
Pretty hostname: Kazulog Web Server
Icon name: computer-vm
kazulog@webserver:~$ cat /etc/machine-info
PRETTY_HOSTNAME="Kazulog Web Server"設定は /etc/machine-info に保存されます。空の文字列を指定すると削除できます。
再起動後の確認
再起動すると、Transient hostname は Static hostname の値に戻ります。Static hostname と Pretty hostname はそのまま維持されます。
kazulog@webserver:~$ hostnamectl | head -3
Static hostname: webserver
Pretty hostname: Kazulog Web Server
Icon name: computer-vm
kazulog@webserver:~$ hostname
webserver
kazulog@webserver:~$ cat /etc/hostname
webserver
kazulog@webserver:~$ grep 127.0 /etc/hosts
127.0.1.1 ubuntu sv1
127.0.0.1 localhostクラウドや仮想基盤では、起動時にホスト名が上書きされることがあります。 cloud-init を使う環境では、設定に応じて初回起動時にホスト名が設定されます。上書きを防ぐには /etc/cloud/cloud.cfg の preserve_hostname を true にします。
kazulog@webserver:~$ grep -E 'preserve_hostname|manage_etc_hosts' /etc/cloud/cloud.cfg
preserve_hostname: false
kazulog@webserver:~$この検証環境では preserve_hostname: false ですが、ホスト名の設定は初回起動時にのみ行われるため、上の再起動では上書きされませんでした。構築時にホスト名を設定する方法は初期設定を自動化する(cloud-init)で解説しています。
ホスト名を元に戻す
kazulog@webserver:~$ sudo hostnamectl set-hostname sv1
kazulog@webserver:~$ sudo hostnamectl set-hostname --pretty ''
kazulog@webserver:~$ hostnamectl | head -2
Static hostname: sv1
Icon name: computer-vm
kazulog@webserver:~$ cat /etc/hostname
sv1
kazulog@webserver:~$検証環境と実行ログ
本記事の実行例は、CML 上の Ubuntu 26.04 LTS Server で採取したものです。各手順の実行ログを以下からダウンロードできます。
| 手順 | 実行ログ |
|---|---|
| 初期状態の確認 | log |
| ホスト名の変更と /etc/hosts の確認 | log |
| 名前解決と sudo の確認 | log |
| 再ログイン後のプロンプト | log |
| –transient と表示用の名前 | log |
| hostname コマンドによる一時的な変更 | log |
| 再起動後の状態 | log |
| cloud-init の設定 | log |
| ホスト名を元に戻す | log |
参考リンク
hostnamectl(1) - systemd documentation
関連記事
- Ubuntu 26.04 LTS Server のホスト名の変更(hostnamectl)
- Ubuntu 26.04 LTS Server のパッケージ更新(apt update / upgrade)
- Ubuntu 26.04 LTS Server のタイムゾーン設定と時刻同期
- Ubuntu 26.04 LTS Server のユーザー作成と sudo 権限の設定
- Ubuntu 26.04 LTS Server の SSH サーバー設定(公開鍵認証)
- Ubuntu 26.04 LTS Server の telnet サーバー設定
- Ubuntu 26.04 LTS Server の inetd(スーパーサーバー)設定
- Ubuntu 26.04 LTS Server の TFTP サーバー設定(tftpd-hpa)
- Ubuntu 26.04 LTS Server の FTP サーバー設定(vsftpd)
- Ubuntu 26.04 LTS Server の syslog サーバー設定(rsyslog)
- Ubuntu 26.04 LTS Server のサービス管理(systemctl)とログ確認(journalctl)
- Ubuntu 26.04 LTS Server の自動更新設定(unattended-upgrades)
- Ubuntu 26.04 LTS Server の初期設定を自動化する(cloud-init)
- Ubuntu 26.04 LTS Server のカーネルパラメータ設定(sysctl)
- Ubuntu 26.04 LTS Server のネットワーク設定(Netplan)
- Ubuntu 26.04 LTS Server の名前解決設定(systemd-resolved)
- Ubuntu 26.04 LTS Server の NTP 同期先の変更(chrony)
- Ubuntu 26.04 LTS Server のスタティックルート設定(Netplan)
- neovim 公式サイトから最新バージョンをインストールする手順 Ubuntu 26.04 LTS Server