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