(最終更新月:2023年5月)
✔このような方へ向けて書かれた記事となります
「hostnameコマンドって何ができるの?」
「hostnameコマンドの使い方を教えてほしい」
「hotnameコマンドのいろいろな具体例が見たい」
✔当記事を通じてお伝えすること
- hostnameコマンドの基本
- hostnameコマンドの応用した使い方
- hostnameコマンドの実例
当記事では、hostnameコマンドの基本から応用までを初心者向けに解説します。
Linuxの基本操作やコマンドラインの使い方も学び、ホスト名操作が簡単におこなえるようになることが目的です。
具体的な使用例を交えながら、ホスト名の確認や変更方法を詳しく説明し、よくある質問や注意点にも触れていきます。
ぜひ最後までご覧ください。
hostnameコマンドの基本
hostnameコマンドの基本からおさえていきましょう。
わからない箇所があると、あとあと困りますので、必ず確認してください。
- hostname コマンドとは
- hostname コマンドの機能
- hostname コマンドのオプション
hostnameコマンドとは
hostnameコマンドは、Linuxでホスト名を表示・変更するためのコマンドです。
ホスト名は、コンピュータやデバイスを識別するための名前で、ネットワーク上での通信に使用されます。
Linuxとは
Linuxは、オープンソースのOS(オペレーティングシステム)で、Unix系OSのひとつです。サーバーやスマートフォン、組み込みシステムなど幅広い分野で利用されています。Linuxは複数のディストリビューション(Ubuntu, Fedora, CentOSなど)があり、それぞれ独自の特徴や機能があります。
hostnameコマンドの機能
hostnameコマンドの主な機能は以下の通りです。
- 現在のホスト名を表示
- ホスト名を一時的に変更
- ホスト名を恒久的に変更
具体的な使い方は次章以降でご紹介します。
hostnameコマンドのオプション
hostnameコマンドにはいくつかのオプションがあります。
代表的なオプションを以下に示します。
- -d:ドメイン名を表示します。
- -f:完全なFQDN(Fully Qualified Domain Name)を表示します。
- -i:IPアドレスを表示します。
- -s:ショートホスト名(ドメイン名を除いた部分)を表示します。
ほかのコマンドも含めて次章でまとめています。
hostnameコマンドのオプション一覧
hostnameコマンドのオプション一覧です。
オプション | 説明 | 使用例 |
---|---|---|
-a | エイリアス名を表示します。 | hostname -a |
-d | ドメイン名を表示します。 | hostname -d |
-f | FQDN(完全修飾ドメイン名)を表示します。 | hostname -f |
-i | ホストのIPアドレスを表示します。 | hostname -i |
-s | ショートホスト名(ドメイン部分を除いた部分)を表示します。 | hostname -s |
-y | NIS/YPドメイン名を表示します。 | hostname -y |
-b | ブート時にホスト名を設定します。引数にホスト名を指定します。 | hostname -b newhostname |
-F | ファイルからホスト名を読み込みます。引数にファイルパスを指定します。 | hostname -F /etc/myhostname |
hostnameコマンドの使い方
hostnameコマンドの使い方を具体的に見ていきます。
場面別にご紹介しているので、使いたい場面を想像しながら見ていきましょう。
- 現在のホスト名を表示する
- ホスト名を一時的に変更する
- ホスト名を恒久的に変更する
- IPアドレスを表示
現在のホスト名を表示する
コマンドラインで「hostname」と入力し、エンターキーを押すことで、現在のホスト名が表示されます。
例えば、現在のホスト名が “myhostname” であれば、”myhostname” と表示されます。
ホスト名を一時的に変更する
sudo hostname 新しいホスト名
エンターキーを押すことで、ホスト名を一時的に変更できます。
ただし、システムを再起動すると元に戻ります。
sudo hostname new-hostname
ホスト名を恒久的に変更する
恒久的にホスト名を変更するには、以下の手順を実行します。
- 「sudo nano /etc/hostname」を入力し、エンターキーを押して、ホスト名設定ファイルを開きます。
- 新しいホスト名に変更し、Ctrl + X キーを押して、変更を保存します。
- システムを再起動します。
IPアドレスを表示
hostname -i
-iオプションでIPアドレスが表示されます。
$ hostname -i
127.0.1.1
よくある質問とその回答
よくある質問についても見ていきます。
事前に理解しておくことで、回避できるトラブルもあるでしょう。
- ホスト名の変更が反映されない場合の対処法
- ホスト名の文字制限について
- ホスト名を変更した際の影響
ホスト名の変更が反映されない場合の対処法
ホスト名の変更が反映されない場合は、以下の手順で対処します。
- /etc/hosts ファイルを編集して、旧ホスト名の部分を新ホスト名に変更
- システムを再起動し、変更が反映されているか確認
ホスト名の文字制限について
ホスト名は、通常1~63文字の範囲で設定することが推奨されています。
また、英数字とハイフンを使用できますが、ホスト名の先頭と末尾にハイフンは使用できません。
ホスト名を変更した際の影響
ホスト名を変更すると、他のデバイスやサービスとの連携が影響を受ける可能性があります。
なぜならネットワーク上での識別名が変わるからです。
例えば、SSH接続やメール送信などが正常に機能しなくなることがあります。
ホスト名を変更する際には、影響を受けるサービスについて事前に調査し、適切な対応をおこなってください。
注意点とトラブルシューティング
hostnameの使用による注意点は以下のとおり。
- ホスト名の一貫性
- ローカルホスト名とFQDN
- ホスト名変更後のサービス再起動
- SELinux のポリシーによる制約
- ホスト名に使用できる文字と制限
ホスト名の一貫性
ホスト名は、システム内のすべての設定ファイルやサービスで一貫性を持たせることが重要です。
一貫性がない場合、システムの動作に問題が発生したり、ネットワーク上での識別が困難になることがあります。
ホスト名を変更する際は、/etc/hostname だけでなく、/etc/hosts や他の設定ファイルも更新し、必要に応じてサービスを再起動することが望ましいです。
ローカルホスト名とFQDN
ローカルホスト名(ドメイン名を除いた部分)とFQDN(完全修飾ドメイン名)の違いを理解し、適切に設定することが重要。
両者の違いを理解せずに設定すると、ネットワーク上での識別や名前解決がうまくいかないことがあります。
ローカルホスト名は、同一ネットワーク内で一意であるように設定し、FQDNはインターネット上で一意であるように設定してください。
ホスト名変更後のサービス再起動
ホスト名を変更した後に、影響を受けるサービスを再起動することが重要です。
ホスト名を変更しても、すぐにすべてのサービスに反映されない場合があります。
対処法として、ホスト名を変更した後は、影響を受けるサービス(SSHやメールサーバーなど)を再起動して、変更を反映させましょう。
SELinux のポリシーによる制約
SELinux が有効なシステムでは、ホスト名の変更が SELinux のポリシーによって制約されることがあります。
SELinux のポリシーが適切に設定されていない場合、ホスト名の変更が拒否されてしまうからです。
SELinux のポリシーを確認し、必要に応じて調整してください。
もしくは一時的に、 SELinux を無効にしてホスト名の変更をおこない、その後 SELinux を有効に戻すこともできます。
ただし、セキュリティ上のリスクがあるため、この方法は慎重に検討しましょう。
SELinux(Security-Enhanced Linux)は、Linuxシステムのセキュリティを強化するためのモジュールで、アクセス制御メカニズムを提供します。アプリケーションやシステムプロセスの操作を細かく制御し、どのアプリケーションが特定のファイルにアクセスできるか、どのシステムプロセスが特定のシステムリソースを利用できるかなどの設定が可能です。
ホスト名に使用できる文字と制限
ホスト名に使用できる文字やその長さにも制限があることに注意してください。
使用できない文字を含むホスト名や、長すぎるホスト名を設定すると、ネットワーク上での名前解決がうまくいかないことがあります。
ホスト名には、以下のみ使用すること。
- 英数字(a-z、A-Z、0-9)
- ハイフン(-)
- およびドット(.)
また、ホスト名は63文字以内、FQDNは253文字以内に収めることが望ましいです。
まとめ
当記事では、hostnameコマンドを使ったホスト名操作の方法を解説しました。
Linux初心者にもわかりやすいように、基本から応用まで詳しく説明しました。
ホスト名操作は、Linuxの基本的なスキルのひとつですので、ぜひマスターしてください。
hostnameコマンドを理解できたら、次にLinuxの他のコマンドやシステム管理に関する知識を学んでいくことがおすすめです。
ネットワーク設定やファイルシステム管理、パーミッション設定など、Linuxを使いこなすためにはさまざまな知識が必要です。
少しずつでも良いので学んでいきましょう。