RHEL 8 / CentOS 8で固定IP アドレスを設定する方法

ネットワークインターフェイスに静的IPを設定したい場合が多い。RHEL 8 / CentOS 8では、ネットワーク接続はNetworkManagerデーモンによって管理されているので、このチュートリアルでは、コマンドラインユーティリティを使用して、またはテキストユーザーインターフェイスを介して、インターフェイスファイルを直接編集することによって、このようなタスクを実行する方法を見ます。nmclinmtui

このチュートリアルでは、次の内容について学習します。

  • インターフェイス ファイルを直接編集して静的 IP アドレスを設定する方法
  • nmcli ユーティリティを使用して静的 IP アドレスを設定する方法

使用するソフトウェア要件と規則

ソフトウェア要件と Linux コマンドライン規則
カテゴリ 使用される要件、規則、またはソフトウェアバージョン
システム RHEL 8 / セント8
ソフトウェア このチュートリアルで説明されているすべてのソフトウェアは、RHEL 8または CentOS 8 の最小インストールに含まれています。
root 権限を持つコマンドを実行する権限。
規則 #– rootユーザーとして直接またはコマンド
$を使用して root 権限で実行する特定の Linux コマンドが必要です – 与えられた Linuxコマンドを通常の非特権ユーザーとして実行する必要があります
sudo

導入

Red Hat Enterprise Linux 8 では、ネットワークインターフェースはデーモンによって管理されるため、ネットワークインターフェースの設定を変更するには、何らかの形でやり取りする必要があります。このチュートリアルでは、異なる 3 つの方法を使用して、NIC の静的 IP アドレス、ゲートウェイ、および DNS サーバーを設定する方法を見てみます。NetworkManager

インターフェイスの識別

まず最初に、変更したいインターフェイスを見つけることです。システム上のすべてのインタフェースをリストするには、次のコマンドを使用します。ip addr

$ ip addr
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  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: enp1s0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.189/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
       valid_lft 3004sec preferred_lft 3004sec
    inet6 fe80::9ab6:ba48:1ddd:a8e1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever</broadcast,multicast,up,lower_up></loopback,up,lower_up>

上記の出力では、rhel8 仮想化マシンでコマンドを実行した結果、2 つのインターフェイスと .1 つ目は”仮想” インターフェイスで、システムがそれ自体と 「話し合う」ために使用します。2つ目は私たちに興味のあるものであり、現在のIPv4アドレスは192.168.122.189です: 私たちはそれを変更したいと考えています。loenp1s0

方法 1 – インターフェイス構成ファイルを手動で変更する

NetworkManager デーモンによって管理されるネットワーク・インターフェースごとに、ディレクトリ内に構成ファイルが作成されます。ファイルの名前は、接頭辞とインターフェイス名で構成されます。NIC に関連するファイルを調べると、実際の設定がわかります。/etc/sysconfig/network-scriptsifcfg-

$ cat /etc/sysconfig/network-scrIPts/ifcfg-enp1s0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp1s0"
UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58"
DEVICE="enp1s0"
ONBOOT="yes"


このオプションは: に設定され、起動時に使用するプロトコルを設定して、インタフェースの IP アドレスを設定します。使用できるオプションは次のとおりです。BOOTPROTOdhcp

  • none – プロトコルを使用しない
  • bootp – bootp プロトコルを使用する
  • dhcp – DHCP プロトコルを使用する

静的 IPv4 アドレスを設定する必要があるため、BOOTPROTO の値を変更して、IP、ルート プレフィックス、ゲートウェイ、DNS サーバーを静的に構成します。これは、 、および オプションをそれぞれ使用して実現できます。多くの DNS サーバーを指定できるので、オプションは 1 から始まる順次番号と共に報告する必要があります。必要な変更の後、ファイルは次のようになります。noneIPADDRPREFIXGATEWAYDNSDNS

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp1s0"
UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58"
DEVICE="enp1s0"
ONBOOT="yes"
IPADDR=192.168.122.66
PREFIX=24
GATEWAY=192.168.122.1
DNS1=192.168.122.1

 

静的 IP を に設定し、ゲートウェイと DNS サーバーの両方を に設定します。今、私たちの変更を効果的にするために、我々はネットワークインターフェイスを再び置く必要があります。これは、上記のインターフェイスを介して存在するssh接続を中断するに注意してください。192.168.122.66192.168.122.1

sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0

コマンドを再度実行することで、IP が変更されたことを確認できます。ip addr

IP addr|grep enp1s0|grep inet
inet 192.168.122.66/24 brd 192.168.122.255 scope global noprefix

方法 2 – nmcli を使用する

Nmcliは、NetworkManager を制御するために使用されるコマンド ライン ツールです。これを使用することで、他のシンの中でも、特定のインターフェイスのネットワーク設定を変更することができます。この場合、サブコマンドとの nmcli を、 アクションと共に使用する必要があります。最初の方法では設定を直接変更でき、2つ目はnmcliシェルを起動し、インタラクティブに操作できます。connectionmodifyedit

nmcli を直接使用する

直接 nmcli コマンドを使用して”enp1s0″ インターフェイスの IP アドレスを変更するには、次を実行します。

$ sudo nmcli connection modify enp1s0 IPv4.address 192.168.122.66/24

ルーティング プレフィックスは、いわゆる表記 (クラスドメイン間ルーティング) を使用して IP と共に指定していることに注意してください。同様の構文を使用して、ゲートウェイと DNS の設定を変更します。CIDR

$ sudo nmcli connection modify enp1s0 IPv4.gateway 192.168.122.1
$ sudo nmcli connection modify enp1s0 IPv4.dns 192.168.122.1

最後に、インターフェイスに他のブート プロトコルを使用しないようにメソッドを設定します。このコマンドは、BOOTPROTO オプションをインターフェイス構成ファイル内で none に設定します。manual

sudo nmcli connection modify enp1s0 IPv4.method manual

nmcli シェルの使用

前述のとおり、インタラクティブなメソッドを使用して同じ変更を行うこともできます。を入力するには、アクションを使用し、その後に編集するインターフェイスの名前を入力します。nmcli shelledit

$ sudo nmcli connection edit enp1s0
===| nmcli interactive connection editor |===

Editing existing '802-3-ethernet' connection: 'enp1s0'

Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [.]' for detailed property descrIPtion.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, IPv4, IPv6, tc, proxy
nmcli>

点滅カーソルは、シェルがコマンドを受け入れることを示します:利用可能なもののリストを取得したり、すべての接続プロパティを表示したり、設定とそのプロパティの1つ(ドット表記で表される)を入力して後者の説明を取得したりできます。例えば:helpprintdescribe

nmcli>
nmcli> describe IPv4.address

=== [addresses] ===
[NM property descrIPtion]
Array of IP addresses.

[nmcli specific descrIPtion]
Enter a list of IPv4 addresses formatted as:
  IP[/prefix], IP[/prefix],...
Missing prefix is regarded as prefix of 32.

Example: 192.168.1.5/24, 10.0.0.11/24

インターフェイスのアドレスを変更するには、次の手順を実行します。

nmcli> set IPv4.address 192.168.122.66/24

他のプロパティを変更する場合も、同じ原則が使用されます。

nmcli> set IPv4.gateway 192.168.122.1
nmcli> set IPv4.dns 192.168.122.1
nmcli> set IPv4.method manual

変更を保存するには、最後のコマンドを 1 つ発行する必要があります。

nmcli> save
Connection 'enp1s0' (d5f41bf4-de0a-43b3-b633-7e2ec6212e58) successfully updated.

nmcli シェルを終了するには、入力して Enter キーを押すだけです。quit

nmcli> quit

変更を有効にするには、前に使用したのと同じコマンドでインターフェイスをリロードする必要があります。

結論

このチュートリアルでは、Red Hat エンタープライズ Linux 8 で固定 IP アドレスを設定するために使用できる 2 つの方法を見ました。手動で編集するときに、どのようなオプションを変更する必要があり、インターフェイス設定ファイルに追加する必要があるのか、また、コマンドラインユーティリティとテキストユーザーインターフェイスであるnmcliを使用して同じ変更を実行する方です。