Linux hostname コマンド
hostname とは
hostname(ホスト名)は、ネットワーク上のコンピュータを識別するための一意の名前です。すべての人に名前があるように、各コンピュータにもネットワーク上で認識されるための固有の名前が必要です。
Linux システムでは、hostname は次の目的で使用されます:
- ローカルコンピュータの識別
- ネットワーク通信でのデバイス識別
- 一部のネットワークサービスの動作に影響を与える
- ターミナルのプロンプトに表示される
ホスト名は通常、次の3つのタイプに分類されます:
- 静的ホスト名:設定ファイルに保存され、システムを再起動しても変更されません
- 一時ホスト名:実行時に一時的に設定され、再起動後は無効になります
- プリティホスト名:特殊文字を含めることができる説明的な名前(例:「My Laptop」)
hostname コマンドの基本構文
hostname コマンドの基本的な使用形式は次のとおりです:
hostname [选项] [新主机名]
パラメータを付けずに直接実行すると、hostnameコマンドは現在のシステムのホスト名を表示します:
実例
ubuntu-server
一般的なオプションとパラメータの説明
hostname コマンドは、さまざまなタイプのホスト名を確認・設定するための複数のオプションをサポートしています:
| オプション | 説明 |
|---|---|
-a, --alias |
ホストのエイリアスを表示(設定されている場合) |
-A, --all-fqdns |
すべてのネットワークインターフェースの FQDN(完全修飾ドメイン名)を表示 |
-b, --boot |
ホスト名が設定されていない場合は、デフォルトのホスト名を使用 |
-d, --domain |
DNS ドメイン名を表示 |
-f, --fqdn, --long |
FQDN(完全修飾ドメイン名)を表示 |
-F, --file |
指定したファイルからホスト名を読み取る |
-i, --ip-address |
ホストの IP アドレスを表示 |
-I, --all-ip-addresses |
すべてのネットワークインターフェースの IP アドレスを表示 |
-s, --short |
短いホスト名を表示(ドメイン名部分を除く) |
-y, --yp, --nis |
NIS ドメイン名を表示 |
ホスト名を設定する3つの方法
1. 一時的にホスト名を設定(再起動後は無効)
実例
例:
実例
$ hostname
test-server
注意:この方法で設定したホスト名は、システムを再起動すると元のホスト名に戻ります。
2. 永続的にホスト名を設定(設定ファイルを変更)
ほとんどの最新の Linux ディストリビューション(systemd を使用)では、次のようにしてホスト名を永続的に変更できます:
実例
例:
実例
このコマンドは同時に以下を変更します:
/etc/hostnameファイル- システムの静的ホスト名
3. 設定ファイルを手動で編集
ホスト名の設定ファイルを直接編集することもできます:
編集
/etc/hostnameファイル:sudo nano /etc/hostname
元の内容を削除し、新しいホスト名だけを書き込む
更新
/etc/hostsファイルで、ホスト名を 127.0.0.1 にマッピングする行があることを確認します:127.0.0.1 localhost new-hostname
変更を適用(再起動不要):
sudo systemctl restart systemd-hostnamed
さまざまな種類のホスト名を確認する
静的ホスト名を確認する
実例
# または
cat /etc/hostname
一時ホスト名を確認する
実例
# または
hostnamectl --transient
プリティホスト名を確認する
実例
FQDN(完全修飾ドメイン名)を確認する
実例
# または
hostnamectl --fqdn
実際の応用例
例1:現在のシステムの完全なホスト情報を確認する
実例
Static hostname: ubuntu-server
Icon name: computer-vm
Chassis: vm
Machine ID: 1a2b3c4d5e6f7g8h9i0j
Boot ID: 1k2l3m4n5o6p7q8r9s0t
Virtualization: kvm
Operating System: Ubuntu 20.04 LTS
Kernel: Linux 5.4.0-42-generic
Architecture: x86-64
例2:静的ホスト名とプリティホスト名を同時に設定する
実例
例3:ネットワーク経由でホスト名情報を取得する
実例
192.168.1.100
$ hostname -I
192.168.1.100 10.0.0.100
よくある問題と解決策
問題1:ホスト名を設定しても反映されない
解決策:
- 同時に以下を更新したことを確認します
/etc/hostsファイル - 他のサービス(NetworkManager など)がホスト名の設定を上書きしていないか確認します
- システムを再起動するか、以下を実行してみてください:
sudo systemctl restart systemd-hostnamed
問題2:ホスト名に不正な文字が含まれている
解決策:
- ホスト名に含めることができるのは:
- 英字 a-z
- 数字 0-9
- ハイフン (-)
- ハイフンで開始または終了することはできません
- 長さは通常 63 文字以内に制限されます
問題3:ネットワークサービスが新しいホスト名を認識できない
解決策:
- 関連するネットワークサービスを再起動します:
sudo systemctl restart networking
- DNS キャッシュをクリアします(該当する場合)
- DNS サーバーが更新されていることを確認します(ネットワーク内のサーバーの場合)
ベストプラクティスの推奨事項
命名規則:
- 「web-prod-01」「db-backup-02」などの意味のある名前を使用する
- 特殊文字とアンダースコアの使用を避ける
- 特にサーバークラスターでは一貫性を保つ
複数ホスト名環境:
- 静的ホスト名を主要な識別子として使用する
- プリティホスト名を使用して人間が読める説明を提供する
- 以下を使用して
/etc/hosts重要なサーバーにエイリアスを追加する
自動化管理:
- クラウド環境では、cloud-init を使用してホスト名を自動設定できます
- 構成管理ツール(Ansible など)を使用してホスト名を一括管理する
ドキュメント記録:
- ホスト名とサーバーの役割の対応関係を示すドキュメントを維持する
- 監視システムでホスト名を識別子として使用する
まとめ
hostname は Linux システム管理における基礎的でありながら重要な概念です。この記事を通じて、以下のことを習得できたはずです:
- さまざまなタイプのホスト名を確認・設定する方法
- ホスト名を永続的に変更する正しい手順
- ホスト名に関連するよくある問題の解決策
- ホスト名管理のベストプラクティス
本番環境のホスト名を変更する前に、必ず影響を評価してください。特にクラスター環境では、ホスト名の変更がサービスディスカバリや監視システムに影響を与える可能性があります。
その他の拡張
Linux コマンド大全