Linuxのシステム管理やサーバー運用をしていると、「ホスト名(hostname)」という言葉をよく耳にします。ホスト名はネットワーク上でその端末を識別するための名前であり、SSH接続時やログの確認時に非常に重要です。
本記事では、ホスト名を確認・変更するための基本的なコマンド「hostname」について、初心者でもわかりやすいように解説します。使用例や注意点も含めて丁寧に紹介しますので、Linuxの基礎を身につけたい方はぜひ参考にしてください。
hostnameコマンドとは?
Linuxにおけるhostname
コマンドは、現在のホスト名を表示または変更するために使用される基本的なコマンドです。
ホスト名は、ネットワーク上で端末を一意に識別するための名前で、DNS名やメールサーバー設定などにも関係します。通常、システムの起動時に設定され、自動的に認識されます。
$ hostname
my-linux-machine
上記のように、何もオプションをつけずに実行すると、現在のホスト名が表示されます。
ホスト名の役割と重要性
ホスト名には次のような役割があります。
- ネットワーク上での識別
複数の端末が接続される環境では、それぞれのホスト名で機器を識別します。 - ログの記録に使用
システムログやアクセスログにホスト名が記録されるため、トラブルシューティングや運用監視の際に重要です。 - SSHやリモート接続時の認識
サーバーにSSH接続する際、ホスト名で判別することが多いため、わかりやすいホスト名が望まれます。
hostnameコマンドの基本的な使い方
現在のホスト名を確認する
最も基本的な使い方は、現在のホスト名を表示することです。
$ hostname
これだけで現在のホスト名が表示されます。
一時的にホスト名を変更する
hostname
コマンドに新しいホスト名を指定することで、一時的にホスト名を変更できます。
$ sudo hostname new-hostname
ただし、この方法では再起動すると元に戻ります。恒久的に変更したい場合は別の設定が必要です。
恒久的にホスト名を変更する方法
Linuxディストリビューションによって、恒久的なホスト名の設定方法が異なります。以下は主なディストリビューション別の方法です。
Ubuntu / Debian系
UbuntuなどのDebian系では、/etc/hostname
と/etc/hosts
ファイルを編集する必要があります。
/etc/hostname
を編集:
$ sudo nano /etc/hostname
ファイル内のホスト名を新しい名前に書き換えます。
/etc/hosts
を編集:
$ sudo nano /etc/hosts
127.0.1.1に対応する旧ホスト名を新しいホスト名に変更します。
- システムを再起動:
$ sudo reboot
RHEL / CentOS / Rocky Linux系
Red Hat系のディストリビューションではhostnamectl
コマンドが使えます。
$ sudo hostnamectl set-hostname new-hostname
この方法で設定したホスト名は、再起動しても保持されます。
hostnamectlとの違いと使い分け
hostnamectl
は、systemdが導入されているディストリビューション(CentOS 7以降、Ubuntu 16.04以降など)で使用できる、ホスト名管理のためのコマンドです。
$ hostnamectl
このコマンドを使うことで、以下のような情報が表示されます:
- Static hostname(現在のホスト名)
- Pretty hostname(表示用に整形された名前)
- Kernel hostname(OSレベルでのホスト名)
変更例
$ sudo hostnamectl set-hostname my-new-host
また、GUI環境で設定するよりも正確かつ安定して変更されるので、サーバー運用ではhostnamectl
の使用が推奨されます。
ホスト名を変更した後にすべきこと
ホスト名を変更した後は、以下の確認を行うと安心です。
hostname
コマンドで新しい名前が反映されているか確認/etc/hosts
ファイル内の記述が古いホスト名のままになっていないか確認- ネットワーク設定ファイルで古いホスト名を参照していないか確認(例:メールサーバーなど)
また、サーバー管理している場合、NagiosやZabbixなどの監視ソフトに登録しているホスト名も更新する必要があります。
よくあるエラーと対処法
sudo: hostname: command not found
hostname
コマンドが存在しない場合は、パスが通っていないか、パッケージがインストールされていない可能性があります。
$ sudo apt install net-tools # Ubuntu系
$ sudo yum install hostname # CentOS系
ホスト名変更後にSSH接続で警告が出る
ホスト名を変更したサーバーにSSHで接続すると、「REMOTE HOST IDENTIFICATION HAS CHANGED」などの警告が出ることがあります。
これは、SSHが以前のホスト名と公開鍵の組み合わせを覚えているためです。以下のコマンドで古い情報を削除できます。
$ ssh-keygen -R <hostname or IP>
まとめ:hostnameコマンドでシステム管理の第一歩を
hostname
コマンドはシンプルながら、Linuxシステム管理において欠かせない存在です。サーバー運用をしていると、ログや監視、接続設定などでホスト名が頻繁に関わってきます。
- ホスト名の確認は
hostname
- 一時的な変更は
sudo hostname
- 恒久的な変更は
/etc/hostname
の編集やhostnamectl
こうした基礎を押さえることで、より安定したサーバー運用が可能になります。初めての方もぜひ、試しにご自身のLinuxマシンでhostname
を使ってみてください。