Rocky Linux / ホスト名を変更する方法
Rocky Linuxでホスト名を変更するにはsudo hostnamectl set-hostname 新しい名前を実行すればよいです。例えばサーバー名をweb01.example.comに変更した後、hostnamectlで確認できます。ホスト名の変更とDNS・/etc/hostsの名前解決設定は別なので、新しい名前で接続する場合はアドレスマッピングも確認する必要があります。
現在のホスト名を確認する
変更前に現在の名前を確認し、記録しておくと、既存の設定やサービスで以前の名前を探すときに役立ちます。
hostnamectl
hostname
cat /etc/hostname
hostnamectlは静的(static)・一時(transient)ホスト名およびシステム情報を表示します。/etc/hostnameには再起動後も保持される静的ホスト名が保存されます。Rocky Linuxのドキュメントでは、このファイルを直接編集するよりもhostnamectlを使用することを推奨しています。Rocky Linux管理ガイドのホスト名の説明を参照できます。
hostnamectlでホスト名を変更する
以下のコマンドのweb01.example.comは例です。実際の環境で使用する名前に置き換えて入力してください。管理者権限が必要です。
sudo hostnamectl set-hostname web01.example.com
set-hostnameにタイプオプションを指定しない場合、静的ホスト名なども同時に設定されます。静的ホスト名だけを指定する場合は--staticを使用できますが、一般的な名前変更は上記のコマンドで十分です。静的・一時・表示用(pretty)ホスト名の違いは、Red Hatのhostnamectlの説明にまとめられています。
短い名前のweb01も使用できます。ただし、サーバーをドメイン名で識別・運用する場合は、web01.example.comのようにホスト名とドメインを含む完全修飾ドメイン名(FQDN, Fully Qualified Domain Name)を使用できます。どの形式を使う場合も既存サーバーと名前が重ならないようにし、証明書、監視、アプリケーションが期待する名前も確認します。元へ戻す場合は、記録しておいた以前の名前を指定してsudo hostnamectl set-hostname 以前の名前を実行し、変更したDNS・hostsの対応も元へ戻して再確認します。
変更結果の確認
コマンド実行後、現在の名前と保存された名前をそれぞれ確認します。
hostnamectl
hostname
cat /etc/hostname
静的ホスト名だけを簡単に確認したい場合は、次のコマンドを使用します。
hostnamectl --static
変更直後にhostnamectlとhostnameに新しい名前が表示されても、すでに開いていたシェルのプロンプトには以前の名前が残っている場合があります。この場合は、新しいログインセッションを開いて確認してください。実行中のサービスのうち、起動時のみホスト名を読み込むサービスは、そのサービスを再起動することで新しい名前が反映されます。OSの再起動はサービスを起動し直す方法ですが、コマンド結果を確認するために必ずしも先に再起動する必要はありません。運用サーバーでは、サービスへの影響や点検時間を考慮してください。
新しい名前で接続できない場合に確認すること
ホスト名を変更するだけで、DNSレコードや/etc/hostsのアドレスマッピングが自動的に新しい名前に合わせて変更されるわけではありません。新しい名前でサーバーに接続したり、プログラムが新しい名前を参照する必要がある場合は、名前解決の結果を確認してください。
getent hosts web01.example.com
getentは実行したマシンのNSS設定に従う名前解決を確認するもので、サーバーへの接続成功までは証明しません。接続元のクライアントでも確認してください。結果がない場合やアドレスが間違っている場合は、実際の運用環境で使用しているDNSレコードまたは/etc/hostsの該当項目を修正する必要があります。/etc/hostsに以前の名前とIPアドレスのマッピングがある場合は、必要に応じて新しい名前に変更してください。ただし、localhostの項目は勝手に削除しないでください。example.comは説明用の例示ドメインであるため、そのまま運用設定には使用しません。
よく発生する問題
権限エラーで変更できない場合
hostnamectl set-hostnameはシステム設定を変更するため、管理者権限が必要です。一般ユーザーとして実行した場合はsudoを付けて再実行し、そのアカウントに管理者権限があるか確認してください。
再起動後に以前の名前に戻る場合
まずhostnamectl --staticとcat /etc/hostnameに静的ホスト名が保存されているか確認してください。保存された値と実際の値が常に異なる場合は、クラウド初期化ツール、自動構成ツール、またはネットワーク設定が名前を再指定しているか、その環境の設定を点検する必要があります。原因を確認するまでは、ファイルを繰り返し直接修正しないほうが良いです。
よくある質問
ホスト名を変更した後、必ず再起動する必要がありますか?
hostnamectlで変更した名前はすぐに確認できます。ただし、既存のログインセッションのプロンプトや起動時に名前を読み込んだサービスには以前の値が残る場合があり、再ログインまたは該当サービスの再起動が必要になる場合があります。全体の環境に反映させるには、点検時間に再起動する方法もあります。
/etc/hostnameと/etc/hostsの両方を修正する必要がありますか?
通常、/etc/hostnameは直接修正せず、hostnamectlで変更します。/etc/hostsは名前とIPアドレスを結びつけるファイルなので、既存の名前のマッピングがある場合やローカルでの名前解決が必要な場合にのみ、実際のネットワーク設定に合わせて修正します。




