ホスト名は人間が読める文字列であり、「最後から2番目のラックの下から3番目」のような数字や扱いにくい記述子ではなく、使い慣れた名前でコンピュータを参照するのに役立ちます。多くの場合、ホスト名はインストールプロセス中に設定されますが、変更が必要な場合もあります。 Linuxでは、ホスト名を設定する方法はたくさんありますが、この記事はそれらすべてを網羅することを目的としています。
ただし、ホスト名に関連するツールを調べる前に、この用語が使用されているさまざまなコンテキストを理解する必要があります。システムのホスト名には、コンピューターの管理者(ラップトップの所有者、またはサーバーのrootユーザー)とネットワーク(プロトコルと設定に応じて)の2つの指定子が存在する可能性があります。この要因は混乱を招く可能性があります。コンピュータのホスト名を調べて1つの値を確認しただけで、同じコンピュータがネットワーク上で別のコンピュータと呼ばれていることがわかる場合があるためです。
この状況には歴史的な理由があります。はるか昔、DNSの前は、ネットワーク上のホストをファイル/etc/hosts
でローカルに定義する必要がありました。 。ネットワーク上に31のホストがあり、新しいホストが追加された場合、32のホストが/etc/hosts
を更新する必要がありました。 各ネイバーの正しいIPアドレスと対応するホスト名を反映するファイル。このプロセスは、ワールドワイドウェブ(インターネット)などの大規模なネットワークシステムではうまく拡張できなかったため、DNSが発明され、ホスト名の概念はローカルコンピュータから大部分が抽象化され、代わりにネットワークで管理されました。
現在、重要なホスト名はネットワークが使用するホスト名です。 /etc/hosts
のホスト名の値 多くの場合、localhost
に設定されます デフォルトで。
このコンテキストを念頭に置いて、Linuxでホスト名を操作するさまざまな方法をすべて示します。
[無料ダウンロード:高度なLinuxコマンドのチートシート。 ]
3つの名前すべてをhostnamectl
で変更します
hostnamectl
systemd
からのコマンド 3種類のホスト名を操作できます:
- 一時的 :ネットワーク構成から受信しました。
- 静的 :カーネルによって提供されます。
- かなり :ユーザーが提供します。
一時的なホスト名は、名前の衝突を避けるために必要に応じて変更できます。たとえば、コンピュータにpenguin
という名前を付けると ただし、ネットワーク上にその名前の別のホストがすでに存在する場合、ネットワークのホスト名はpenguin-1
になります 。
静的できれいなホスト名はローカル変数に少し似ています。ローカルマシンで発生するアクティビティに使用されます。主にユーザーの便宜のために、ローカルで実行されているかリモートで実行されているかを知る必要のあるアプリケーション(たとえば、転送されたXセッションを介して)。
引数なしで呼び出された場合、hostnamectl
静的な名前ときれいな名前に加えて、いくつかのシステム情報を返します:
$ hostnamectl
Static hostname: penguin
Pretty hostname: Penguin VM
Icon name: computer-vm
Chassis: vm
Machine ID: 418d9ce8ead44bbfb6970c0d356b89bf
Boot ID: fb3a310237ef41f88b1c62c26f19065a
Virtualization: kvm
Operating System: Fedora 30 (Workstation Edition)
CPE OS Name: cpe:/o:fedoraproject:fedora:30
Kernel: Linux 5.0.9-301.fc30.x86_64
Architecture: x86-64
$ sudo hostnamectl set-hostname --pretty "Web dev test environment"
$ sudo hostnamectl set-hostname --static webdev-test-env
$ hostnamectl
Static hostname: webdev-test-env
Pretty hostname: Web dev test environment
[...]
GNOME設定を使用してGUIの静的な名前ときれいな名前を変更する
デスクトップアプリケーションで静的な名前ときれいな名前を設定する場合は、GNOME設定を使用します。 GNOME設定を起動するには、アクティビティに移動します GNOMEデスクトップの左上隅にあるメニュー。 Settings
と入力します 検索フィールドに移動するか、アプリケーションの表示をクリックします 左側のドックにあるアイコンをクリックして、設定を見つけます 以下に示すように、アプリケーションアイコンで:
$ hostnamectl
Static hostname: rockhopper-computer
Pretty hostname: rockhopper computer
[...]
cockpit
で変更します Fedora、CentOS、およびRHELシステムは、ローカルおよびリモートマシンを監視および構成するためのコックピットと呼ばれるWebコンソールアプリケーションを備えています。コックピットを使用すると、自分のマシンまたは管理している任意のマシンの静的ホスト名を変更できます(コックピットが有効になっている場合)。
まず、コックピットをインストールして有効にします:
$ sudo dnf install cockpit
[...]
$ sudo systemctl enable --now cockpit
Webコンソールで、システムをクリックします 左の列のタブ。 ホスト名のエントリをクリックします かなりのホスト名を編集します および(静的)実際のホスト名 :
$ sudo echo "galapagos" > /etc/hostname
$ hostnamectl
Static hostname: snares
Pretty hostname: rockhopper web console computer
[...]
hostname
の静的な名前を変更します ファイル
/etc/hostname
を編集して、静的ホスト名を手動で設定することもできます。 。このファイルには、デフォルトで1行だけが含まれています。ホスト名をまだ変更していない場合、その行はおそらくlocalhost.localdomain
になります。 。 hostnamectl
を使用した場合 すでにホスト名を変更する場合は、このファイルにその変更が反映されます。
このファイルを手動で編集しても、他のすべてのホスト名の値がhostnamectl
のように更新されるわけではないため、必ずしもお勧めしません。 します。例:
$ sudo echo "galapagos" > /etc/hostname
$ hostnamectl
Static hostname: galapagos
Pretty hostname: rockhopper computer
Transient hostname: rockhopper-computer
[...]
nmcli
で変更します
静的ホスト名を変更する別の方法は、NetworkManagerのコマンドラインインターフェイスnmcli
を使用することです。 :
$ sudo nmcli general hostname emperor
$ hostnamectl
Static hostname: emperor
Pretty hostname: rockhopper computer
Transient hostname: rockhopper-computer
[...]
sysctl
を使用して一時的な名前を変更します
sysctl
このコマンドを使用すると、Linuxの実行中(つまり、起動時ではなく)にカーネルパラメーターを構成できます。コンピュータの一時的なホスト名はカーネルパラメータであるため、次のコマンドで変更できます:
$ sudo sysctl kernel.hostname=humboldt
$ hostnamectl
Static hostname: emperor
Pretty hostname: rockhopper computer
Transient hostname: humboldt
[...]
hostname
で変更します
hostname
util-linux
からのコマンド packageは、一時的なホスト名を照会および設定するためのシンプルなツールです。
現在のホスト名を照会するには:
$ hostname
humboldt
$ sudo hostname fjordland
$ hostnamectl
Static hostname: emperor
Pretty hostname: rockhopper computer
Transient hostname: fjordland
/etc/hosts
に注意してください
/etc/hosts
ファイルはほとんどが歴史的ですが、一部のアプリケーションやプロトコルで使用されており、頻繁に使用するホストへのショートカットを作成するための便利な方法になります。これを使用してホスト名を設定できますが、通常は、localhost
のエイリアスを作成するだけです。 IPアドレス127.0.0.1
(コンピュータのネットワークループバックアドレス)。
たとえば、/etc/hosts
を変更した場合 次のようなデフォルトのエントリから:
$ cat /etc/hosts
127.0.0.1 magellanic magellanic.localdomain magellanic magellanic.localdomain4
::1 magellanic magellanic.localdomain magellanic magellanic.localdomain6
$ ping -c 1 localhost
PING localhost(magellanic (::1)) 56 data bytes
64 bytes from magellanic (::1): icmp_seq=1 ttl=64 time=0.182 ms
[...]
$ ping -c 1 magellanic
PING magellanic(magellanic (::1)) 56 data bytes
64 bytes from magellanic (::1): icmp_seq=1 ttl=64 time=0.181 ms
[...]
$ hostnamectl
Static hostname: emperor
Pretty hostname: rockhopper computer
Transient hostname: fjordland
この記事の繰り返しからわかるように、コンピュータのホスト名は、設定する方法が多すぎる場合、または頻繁に変更する場合、混乱する可能性があります。ホスト名の種類を統一することを強制するものはありませんが、各コンピューターですべてを同じに保つのが慣例です。
覚えやすい名前を選んで、かわいい名前に使ってください。静的名と一時名をそこから派生させます。同様に重要なのは、大規模なネットワークでは、意味のあるを選択することです。 名前。たとえば、すべての上級管理職のコンピューターはD&Dモンスターにちなんで名付けられ、IT部門のすべてのコンピューターは有名な宇宙船にちなんで名付けられます。ネーミングスキーマを使用すると、名前の衝突を回避し、ネットワークホストの目がくらむようなリストにコンテキストを提供できます。