すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:ホスト名の指定

最終更新日:Oct 23, 2024

ホスト名は、リソースを特定して管理とメンテナンスを簡素化し、ホスト名ベースのリソースアクセス管理 (RAM) ルールを構成する場合などのシナリオでシステムセキュリティを強化するのに役立ちます。 このトピックでは、hostnameコマンドとhostnamectlコマンドを使用してホスト名を指定する方法と、NetworkManagerネットワーク管理サービスを使用してホスト名を指定および管理する方法について説明します。

制限事項

インスタンスはAlibaba Cloud Linux 3オペレーティングシステムを実行します。

hostnameコマンドを実行してクエリを実行し、一時的なホスト名を指定します

警告

hostnameコマンドで指定したホスト名は, システムの再起動時に無効になります。 永続ホスト名を使用するには、/etc/hostnameファイルでホスト名を指定します。

  • hostnameコマンドを実行して、インスタンスのホスト名を照会します。

    hostname
  • hostnameコマンドを実行して、インスタンスのホスト名を指定します。

    この例では、ホスト名はalinux-dev-testに設定されています。

    sudo hostname alinux-dev-test

hostnamectlコマンドを実行して照会し、hostnamesを指定します

hostnamectlコマンドを実行して、ホスト名に関する情報を指定または表示できます。 systemd-hostnamedサービスを使用して、ホスト名を変更できます。 systemd-hostnamedは、バックグラウンドでホスト名を管理するサービスコンポーネントです。

  • hostnamectlコマンドを実行してホスト名を照会します。

    # Query the static hostname.
    hostnamectl --static
    # Query the temporary hostname.
    hostnamectl --transient

    次の図に示すサンプルのコマンド出力には、照会したホスト名が含まれています。

    image

  • hostnamectlコマンドを実行して、ホスト名を指定します。

    1. ホスト名を指定します。

      この例では、ホスト名はalinux-dev-testに設定されています。

      sudo hostnamectl set-hostname alinux-dev-test

      静的ホスト名と一時ホスト名を照会します。

      hostnamectl --static
      hostnamectl --transient

      hostnamectlコマンドを使用して、静的ホスト名と一時ホスト名を指定できます。 次の図に示すコマンド出力には、指定した静的ホスト名と一時ホスト名が含まれています。

      image

    2. /etc/hostnameファイルを表示します。

      cat /etc/hostname

      次の図は、/etc/hostnameファイルに保存された最新の静的ホスト名を示しています。

      image

(重要) NetworkManagerを使用したホスト名の指定と管理

説明

NetworkManagerは、ネットワーク接続を構成するときに、ネットワークインターフェイスに関連するホスト名設定を管理します。 NetworkManagerを使用してネットワーク接続設定を変更すると、NetworkManagerはsystemd-hostnamedコンポーネントにdbusインターフェイスを使用してホスト名設定を変更するよう通知します。

NetworkManagerは、NetworkManager.confファイルでhostname-modeパラメーターをdefaultまたはdhcpに設定することで、一時的なホスト名を指定および管理します。 次の表に、hostname-modeパラメーターの有効な値を示します。

説明

default

デフォルト値です。

  • 静的ホスト名が指定されている場合、NetworkManagerはこの静的ホスト名を一時ホスト名として使用します。

  • 静的ホスト名が指定されていない場合、NetworkManagerは動的ホスト構成プロトコル (DHCP) を使用して一時的なホスト名を取得します。

    • DHCPがホスト名を返す場合、NetworkManagerはこのホスト名を一時的なホスト名として使用します。

    • DHCPがホスト名を返さない場合、NetworkManagerは逆DNS解決を使用して一時的なホスト名を取得します。

      逆DNS解決が失敗した場合、NetworkManager以外のサービスによって指定された一時的なホスト名が使用されます。 たとえば、hostnameコマンドで指定されたホスト名を使用します。 一時ホスト名が有効な場合、このホスト名が使用されます。 一時ホスト名が無効な場合、NetworkManagerは一時ホスト名をlocalhost.localdomainに設定します。

dhcp

  • 静的ホスト名が指定されている場合、NetworkManagerはこの静的ホスト名を一時ホスト名として使用します。

  • 静的ホスト名が指定されていない場合、NetworkManagerはDHCPを使用して一時ホスト名を取得します。

    • DHCPがホスト名を返す場合、NetworkManagerはこのホスト名を一時的なホスト名として使用します。

    • DHCPがホスト名を返さない場合は、NetworkManager以外のサービスによって指定された一時的なホスト名が使用されます。 たとえば、hostnameコマンドで指定されたホスト名を使用します。 一時ホスト名が有効な場合、このホスト名が使用されます。 一時ホスト名が無効な場合、NetworkManagerは一時ホスト名をlocalhost.localdomainに設定します。

none

NetworkManagerは、一時ホスト名を指定または管理しません。

NetworkManagerのホスト名管理システムとの競合を防ぐために、次のいずれかの方法を使用してホスト名を指定できます。

  • (推奨事項) hostnamectlコマンドを実行して静的ホスト名を指定します。 この例では、ホスト名はalinux-dev-testに設定されています。

    sudo hostnamectl set-hostname alinux-dev-test
  • hostname-modeをnoneに設定すると、NetworkManagerによるホスト名の管理が無効になります。

    1. /etc/NetworkManager/NetworkManager.confファイルを開きます。

      sudo vim /etc/NetworkManager/NetworkManager.conf
    2. Iキーを押してInsertモードに入り、文字列 [main] の下に次の内容を追加します。

      hostname-mode=none
    3. [Esc] キーを押して :wqと入力し、[enter] キーを押して設定ファイルを保存して閉じます。

    4. NetworkManagerを再起動して、設定を有効にします。

      sudo systemctl restart NetworkManager
  • systemdサービスを使用してホスト名を指定します。

    次の構成をsystemdサービスのserviceファイルに追加して、systemdサービスがNetworkManagerより前に起動できるようにします。

    [Unit]
    Before=NetworkManager.service