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

:NIC 構成ファイルに記載されている Linux インスタンスの IP アドレスが ECS コンソールに表示されているインスタンスの IP アドレスと異なる場合はどうすればよいですか?

最終更新日:Feb 19, 2025

Linux インスタンスのネットワークインターフェースコントローラー(NIC)構成ファイルを変更する際に、IP アドレス取得方法を静的に設定し、Elastic Compute Service(ECS)コンソールに表示されるインスタンスの IP アドレスとは異なる IP アドレスを指定すると、ネットワーク接続の失敗、セキュリティグループルールの無効化、インスタンス管理の困難化などの問題が発生する可能性があります。このトピックでは、NIC 構成ファイルに記載されている Linux インスタンスの IP アドレスが ECS コンソールに表示されているインスタンスの IP アドレスと異なる場合の解決方法について説明します。

問題の説明

Linux インスタンスの NIC 構成ファイルで静的 IP アドレスを指定しましたが、指定した IP アドレスが ECS コンソールに表示されているインスタンスの IP アドレスと異なります。

image

image

解決策

手順 1:ECS コンソールに表示されている Linux インスタンスの IP アドレスを取得する

ECS コンソールで Linux インスタンスのプライベート IP アドレスを取得します。詳細については、「IP アドレス」トピックのECS インスタンスの IP アドレスを表示するセクションをご参照ください。

手順 2:Linux インスタンスの NIC 構成ファイルを変更する

Red Hat Enterprise Linux(RHEL)シリーズ

説明
  • 次の手順は、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 6、CentOS 7、CentOS 8、Red Hat 6、Red Hat 7、Red Hat 8、Red Hat 9、Anolis 7、Anolis 8、Fedora 33、Fedora 34、および Fedora 35 の各オペレーティングシステムディストリビューションに適用されます。

  • この例では、Alibaba Cloud Linux 3.2 を使用しています。

  • この例では、eth0 という名前のプライマリ NIC を使用しています。NIC 名は実際の NIC 名に置き換えてください。

  1. Linux インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. サブネットマスクを表示します。

    次のコマンドを実行して、ルーティング情報を表示します。

    route -n

    次の図に示すコマンド出力例は、Linux インスタンスのルーティング情報を示しています。

    • サブネットマスク(Genmask)は 255.255.255.0 です。

    • デフォルトゲートウェイ(Gateway)は 192.168.1.253 です。

    image

  3. 次のコマンドを実行して、NIC 構成ファイルを変更または作成します。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

    IP アドレスを取得する方法として静的を使用し、NIC のプライマリ プライベート IPv4 アドレスとサブネットマスクを構成します。

    サンプルコード:

    DEVICE=eth0
    TYPE=Ethernet
    #IP アドレスを取得するために使用されるメソッド。静的に設定されています。
    BOOTPROTO=static 
    
    #手動で構成する必要がある IPv4 アドレスとサブネットマスク。
    IPADDR=<このパラメーターの値を実際の IPv4 アドレスに置き換えます>
    NETMASK=<このパラメーターの値を実際のサブネットマスクに置き換えます>

    例:

    DEVICE=eth0
    TYPE=Ethernet
    #IP アドレスを取得するために使用されるメソッド。静的に設定されています。
    BOOTPROTO=static 
    
    #手動で構成する必要がある IPv4 アドレスとサブネットマスク。
    IPADDR=192.168.1.201
    NETMASK=255.255.255.0

Ubuntu 22、Ubuntu 24、および Debian 12

  1. Linux インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. サブネットマスクを表示します。

    次のコマンドを実行して、ルーティング情報を表示します。

    route -n

    次の図に示すコマンド出力例は、Linux インスタンスのルーティング情報を示しています。

    • サブネットマスク(Genmask)は 255.255.255.0 です。

    • デフォルトゲートウェイ(Gateway)は 192.168.1.253 です。

    image

  3. 次のコマンドを実行して、cloud-init のネットワーク構成機能を無効にします。

    重要

    /etc/netplan/50-cloud-init.yaml ネットワーク構成ファイルは、Linux インスタンスの起動時に cloud-init によって自動的に生成されます。ネットワーク構成ファイルを変更する前に、cloud-init のネットワーク構成機能を無効にする必要があります。詳細については、「セカンダリ プライベート IP アドレス」トピックのcloud-init がネットワーク構成を自動的に初期化する」セクションをご参照ください。

    sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg 構成ファイルに次の構成を追加します。

    network: {config: disabled}
  4. 次のコマンドを実行して /etc/netplan/50-cloud-init.yaml ネットワーク構成ファイルを開き、NIC を構成します。

    sudo vim /etc/netplan/50-cloud-init.yaml

    例:

    network:
        version: 2
        ethernets:
            eth0: #NIC の名前。
                dhcp4: false #デフォルトでは、動的ホスト構成プロトコル(DHCP)が有効になっており、IP アドレスが自動的に割り当てられます。このパラメーターを false に設定すると、NIC の IP アドレスを手動で構成する必要があります。
                match:
                    macaddress: 00:16:3e:16:43:xx #このパラメーターの値を NIC の実際の MAC アドレスに置き換えます。
                set-name: eth0
                addresses:
                        - 192.168.1.201/24 #このパラメーターの値を NIC の実際のプライマリ プライベート IPv4 アドレスに置き換えます。
                routes:
                  - to: default
                    via: 192.168.1.253 #このパラメーターの値を実際のデフォルトゲートウェイアドレスに置き換えます。

Ubuntu 18 および Ubuntu 20

  1. Linux インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. サブネットマスクを表示します。

    次のコマンドを実行して、ルーティング情報を表示します。

    route -n

    次の図に示すコマンド出力例は、Linux インスタンスのルーティング情報を示しています。

    • サブネットマスク(Genmask)は 255.255.255.0 です。

    • デフォルトゲートウェイ(Gateway)は 192.168.1.253 です。

    image

  3. 次のコマンドを実行して、cloud-init のネットワーク構成機能を無効にします。

    重要

    /etc/netplan/50-cloud-init.yaml ネットワーク構成ファイルは、Linux インスタンスの起動時に cloud-init によって自動的に生成されます。ネットワーク構成ファイルを変更する前に、cloud-init のネットワーク構成機能を無効にする必要があります。詳細については、「セカンダリ プライベート IP アドレス」トピックのcloud-init がネットワーク構成を自動的に初期化する」セクションをご参照ください。

    sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

    /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg 構成ファイルに次の構成を追加します。

    network: {config: disabled}
  4. 次のコマンドを実行して /etc/netplan/50-cloud-init.yaml ネットワーク構成ファイルを開き、NIC を構成します。

    sudo vim /etc/netplan/50-cloud-init.yaml

    例:

    network:
        version: 2
        ethernets:
            eth0: #NIC の名前。
                dhcp4: false #デフォルトでは、DHCP が有効になっており、IP アドレスが自動的に割り当てられます。このパラメーターを false に設定すると、NIC の IP アドレスを手動で構成する必要があります。
                match:
                    macaddress: 00:16:3e:16:43:xx #このパラメーターの値を NIC の実際の MAC アドレスに置き換えます。
                set-name: eth0
                addresses:
                        - 192.168.1.201/24 #このパラメーターの値を NIC の実際のプライマリ プライベート IPv4 アドレスに置き換えます。
                gateway4: 192.168.1.253 #このパラメーターの値を実際のデフォルトゲートウェイアドレスに置き換えます。

手順 3:ネットワークサービスを再起動する

新しい構成を有効にするには、ネットワークサービスを再起動します。

重要

次の表に、ネットワークサービスの再起動に使用するコマンドを示します。特定のコマンドではインスタンスの再起動が必要になり、サービスが中断される可能性があります。オフピーク時にネットワークサービスを再起動することをお勧めします。

オペレーティングシステム

ネットワークサービスの再起動に使用するコマンド

  • Alibaba Cloud Linux 2

  • CentOS 7

  • Red Hat 7

  • Anolis 7

  • SUSE Linux 11、SUSE Linux 12、および SUSE Linux 15

  • openSUSE 15 および openSUSE 42

sudo service network restart

または sudo systemctl restart network

  • CentOS 6

  • Red Hat 6

sudo service network restart

  • Alibaba Cloud Linux 3

  • CentOS 8

  • Red Hat 8

  • Anolis 8

  • Fedora 33、Fedora 34、および Fedora 35

sudo systemctl restart NetworkManager または sudo reboot

  • Ubuntu 18、Ubuntu 20、および Ubuntu 22

  • Debian 12

sudo netplan apply

  • Ubuntu 14 および Ubuntu 16

  • Debian 8、Debian 9、Debian 10、および Debian 11

sudo systemctl restart networking または sudo reboot