本ページでは、DHCP利用によるCentOSのIPアドレスを設定する方法を説明します。

IPアドレスの設定方法は、大きく分けてDHCPによる動的IPアドレス取得と、固定IPアドレス指定の2種類があります。
サーバのIPアドレスを固定したい場合は、固定IPアドレスによる設定を実施します。利用シーンとしては、CentOSをWebサーバとして構築し、クライアントPCから決まったIPアドレスでアクセスしたい場合などです。

Connectionの設定

事前状態確認

まず、現在のConnectionの設定を確認します。nmcliコマンドに-f <フィールド名>オプションを付けることで、ipv4に関するパラメータのみ確認可能です。
設定前の状態例として、設定対象のenp0s3はDHCPによる動的IPアドレス設定となっています。

# nmcli -f ipv4 con show enp0s3
ipv4.method:                            auto
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:
ipv4.gateway:                           --
ipv4.routes:
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes

設定変更

以下コマンドを実行することで、enp0s3に固定IPアドレスとデフォルトゲートウェイを設定します。なお、ipv4.methodは、ipv4.addressesを設定した後でないとえ

# nmcli con mod enp0s3 ipv4.addresses "192.168.1.1/24"
# nmcli con mod enp0s3 ipv4.gateway "192.168.1.254"
# nmcli con mod enp0s3 ipv4.method manual
# nmcli con down enp0s3 ; nmcli con up enp0s3

事後状態確認

設定を変更したところで、再度Connectionの状態を確認してみます。固定IPアドレスの設定前と異なり、ipv4.methodがmanualとなっており、ipv4.addressesipv4.gatewayに先ほど設定した値になっていることが確認できます。

# nmcli -f ipv4 con show enp0s3
ipv4.method:                            manual
ipv4.dns:                               
ipv4.dns-search:
ipv4.addresses:                         192.168.1.1/24 #IPアドレス
ipv4.gateway:                           192.168.1.254 #デフォルトゲートウェイ
ipv4.routes:
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes

IPアドレスの確認

現在使用されているIPアドレスを確認するには、ip addrコマンドを使用します。以下の表示例では、3つのインターフェース(Device)が表示されています。今回固定IPアドレス設定を実施したenp0s3に対して、inetの項目で192.168.1.1/24がIPアドレスとして指定されていることがわかります。

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:7d:ce:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe7d:ce7d/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:17:a3:9c brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.102/24 brd 192.168.56.255 scope global dynamic enp0s8
       valid_lft 1009sec preferred_lft 1009sec
    inet6 fe80::a00:27ff:fe17:a39c/64 scope link
       valid_lft forever preferred_lft forever

個別のインターフェース情報のみ表示したい場合は、ip addr show <Device名>を実行することで表示する情報の絞込みが可能です。
なお、ipコマンドもnmcliコマンドと同様にオプション文字の省略が可能です。ip addrの場合はip aでも同じ実行結果を得られるので覚えておくと良いでしょう。