跳至內容

如何為 EC2 Linux 執行個體指派靜態主機名稱?

2 分的閱讀內容
0

我變更了我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的主機名稱。但是,當我重新啟動或先停止然後重新啟動執行個體時,主機名稱會變更回原始主機名稱。

解決方案

**重要:**在更新執行個體之前,請為您的執行個體建立一個由 Amazon Elastic Block Store (Amazon EBS) 支援的 Amazon Machine Image (AMI)

檢查現有執行個體主機名稱

請完成下列步驟:

  1. 使用 SSH 連線到您的 Linux 執行個體

  2. 若要切換到根使用者,請執行以下命令:

    sudo su -
  3. 若要檢查執行個體主機名稱,請執行下列命令:

    hostnamectl

設定靜態主機名稱

為您執行的作業系統 (OS) 設定靜態主機名稱。

AL2 或 Al2023

若是 Amazon Linux 2 (AL2) 或 Amazon Linux 2023 (AL2023),請完成下列步驟:

  1. 若要開啟 /etc/cloud/cloud.cfg,請執行以下命令:

    vim /etc/cloud/cloud.cfg
  2. 查看 preserve_hostname 屬性。如果其值為 false,則將該值更新為 true
    範例:

    preserve_hostname: true

    **注意:**如果檔案沒有 preserve_hostname 屬性,則將該屬性新增至檔案,並將其值設為 true

  3. 若要設定靜態主機名稱,請執行下列命令:

    hostnamectl set-hostname persistent-hostname

    **注意:**將 persistent-hostname 替換為您的主機名稱。

Ubuntu

若是 Ubuntu,請完成以下步驟:

  1. 若要設定靜態主機名稱,請完成下列步驟:

    hostnamectl set-hostname --static persistent-hostname

    **注意:**將 persistent-hostname 替換為您的主機名稱。

  2. 若要開啟 /etc/hosts,請執行下列命令:

    vim /etc/hosts
  3. 在檔案中輸入以下行:

    localhost persistent-hostname

    **注意:**將 persistent-hostname 替換為您的主機名稱。

  4. 如果您的 EC2 執行個體使用 IPv6,則也請輸入下列組態資料:

    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
  5. 若要開啟 /etc/cloud/cloud.cfg,請執行以下命令:

    vim /etc/cloud/cloud.cfg
  6. 查看 preserve_hostname 屬性。如果其值為 false,則將該值更新為 true
    範例:

    preserve_hostname: true

RHEL 或 CentOS 7、8 和 9

若是 Red Hat Enterprise Linux (RHEL) 或 CentOS 7、8 和 9,請完成以下步驟:

  1. 若要設定靜態主機名稱,請執行下列命令:

    hostnamectl set-hostname --static persistent-hostname

    **注意:**將 persistent-hostname 替換為您的主機名稱。

  2. 若是 RHEL 7.3 或更早版本,請執行以下命令開啟 /etc/cloud/cloud.cfg

    vi /etc/cloud/cloud.cfg
  3. 查看 preserve_hostname 屬性。如果該值為 false,則將值更新為 true
    範例:

    preserve_hostname: true

SUSE Linux

若是 SUSE Linux Enterprise Server (SLES),完成下列步驟:

  1. 若要設定主機名稱,請根據您的 SLES 版本執行下列命令。
    SLES 11:

    hostname persistent-hostname

    SLES 12 和 15:

    hostnamectl set-hostname persistent-hostname

    **注意:**將 persistent-hostname 替換為您的主機名稱。

  2. 執行以下命令,使用您的主機名稱更新 /etc/HOSTNAME 檔案:

    echo "persistent-hostname" > /etc/HOSTNAME

    **注意:**將 HOSTNAME 替換為您的主機名稱。

  3. 若要開啟 /etc/hosts,請執行下列命令:

    vim /etc/hosts
  4. 根據您的 SLES 版本在檔案中輸入以下行,並將其替換為您的主機名稱。
    SLES 11:

    127.0.0.1 localhost persistent-hostname

    SLES 12 和 15:

    127.0.0.1 localhost persistent-hostname

    **注意:**將 persistent-hostname 替換為您的主機名稱。

  5. 若要開啟 /etc/cloud/cloud.cfg 檔案,請執行以下命令:

    vim /etc/cloud/cloud.cfg
  6. 在檔案中輸入以下行:

    preserve_hostname: true

實施變更

請完成下列步驟:

  1. 若要重新啟動執行個體,請執行下列命令:

    reboot
  2. 若要驗證新主機名稱,請執行下列命令:

    hostnamectl

對您的問題進行疑難排解

如果您在重新啟動後遇到非預期的主機名稱變更,請執行下列動作:

  • 檢查 /var/log/cloud-init.log/var/log/syslog 中的系統日誌,找出有關主機名稱變更的項目。
  • 如果您安裝的系統更新影響了 /etc/hosts、主機名稱檔案或主機名稱公用程式,請再次完成上述解決步驟。
  • 確認 /etc/cloud/cloud.cfg 檔案中的 preserve_hostname 設定是否為 true

相關資訊

變更 AL2 執行個體的主機名稱

AWS 官方已更新 9 個月前