RHEL/CentOS 7/8のネットワーク設定完全ガイド|ifcfgファイルとNetworkManagerの使い方
本記事では、Linux CentOS/RHEL 7/8 におけるネットワークの設定方法について解説します。設定ファイルを使ったネットワークインターフェースの構成方法や、基本的なネットワーク設定ツールの使い方などを取り上げます。サーバー構築は必ずネットワーク設定から始まるため、管理者にとって非常に重要なトピックです。
前半ではRHEL/CentOS 7で標準的な network サービスを利用したネットワーク設定のポイントを説明し、後半ではCentOS/RHEL 8でデフォルトとなっている NetworkManager(NM) を使ったネットワーク構成方法を学びます。
RHEL/CentOSにおけるネットワークインターフェースの命名規則
従来のLinuxでは、ネットワークインターフェースに eth0 や eth1 のような名前が割り当てられていました。しかし、これらの名前はインターフェースと厳密に紐付いていないため、再起動後に複数のNICで名前が入れ替わる可能性があります。firewalldやiptablesでファイアウォールを設定する際などに問題となるケースがあります。
このため、Red Hat 7およびCentOS 7以降では、複数の命名スキームの階層に基づいてインターフェース名を割り当てる方式が採用されました。デフォルトではsystemdが命名スキームを順番に適用し、最初に利用可能なものを選択します。ネットワークデバイス名は自動的に割り当てられ、ハードウェアを追加・変更しても変わりません。一方で、enp5s0 や ens3 のような従来の eth0/eth1 に比べて可読性の低い名前になる点には注意が必要です。
従来型のLinux標準インターフェース名に戻したい場合は、以下の手順を実行します。
/etc/default/grub を編集します。
# nano /etc/default/grub
GRUB_CMDLINE_LINUX 行に以下を追加します。
net.ifnames=0 biosdevname=0
GRUB行の記述例は次のとおりです。
GRUB_CMDLINE_LINUX="consoleblank=0 fsck.repair=yes crashkernel=auto nompath selinux=0 rhgb quiet net.ifnames=0 biosdevname=0"
GRUB設定を更新します。
# grub2-mkconfig -o /boot/grub2/grub.cfg
ネットワークインターフェースの設定ファイルをリネームします。
# mv /etc/sysconfig/network-scripts/ifcfg-ens3 /etc/sysconfig/network-scripts/ifcfg-eth0
さらに DEVICE の値を変更します。

ファイルを保存し、ホストを再起動して変更が反映されているか確認しましょう。
# ip a

これでインターフェース名が eth0 になりました。
CentOS/RHELインストール時の初期ネットワーク設定
CentOS Linuxのインストール中に、メニューの「ネットワークとホスト名(Network & Hostname)」をクリックすることで、GUIモードでネットワークインターフェースを設定できます。ここでサーバーのホスト名、IPアドレス、ゲートウェイ、DNSなどを指定します。詳細な手順については、関連ガイドを参照してください。
CentOS/RHELでネットワークインターフェース設定ファイルを編集する方法
まず、Linuxホスト上で利用可能なネットワークインターフェースの一覧を表示します。
# ip a
ネットワーク設定ファイルは /etc/sysconfig/network-scripts ディレクトリに格納されています。NetworkManagerデーモンが各ネットワークインターフェース用のファイルを作成します。今回の例では設定ファイル名は ifcfg-eth0 です(命名スキームによって異なる名前の場合があります)。
主なパラメータは以下のとおりです。
DEVICE— システム上のネットワークアダプター名(例では eth0)BOOTPROTO— IPアドレスの割り当て方式(static は手動入力、dhcp は自動取得)IPADDR— IPアドレスNETMASK— サブネットマスクGATEWAY— デフォルトゲートウェイDNS1— プライマリDNSサーバーDNS2— セカンダリDNSサーバーONBOOT— インターフェースの起動方法(yes は自動、no は手動)UUID— ネットワークインターフェースの一意識別子。uuidgen コマンドで生成可能IPV4_FAILURE_FATAL— IPv4設定に誤りがある場合にインターフェースを無効化するかどうか(yes で無効化、no で有効のまま)IPV6_FAILURE_FATAL— IPv6設定に誤りがある場合にインターフェースを無効化するかどうかIPV6_AUTOCONF— IPv6の自動設定を許可または拒否IPV6_INIT— IPv6アドレッシングの使用有無(yes で使用、no で不使用)PEERROUTES— DHCP使用時のデフォルトゲートウェイ設定の優先度IPV6_PEERROUTES— IPv6のDHCP使用時のデフォルトゲートウェイ設定の優先度
それでは、この情報をもとにネットワークインターフェースを設定してみましょう。
CentOS/RHELで静的IPアドレスを設定する方法
ネットワーク設定ファイルを編集用に開きます。
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0

この例では、静的IPアドレス、サブネットマスク、ゲートウェイ、複数のDNSサーバーを指定しています。インターフェースの自動起動を有効にします。
ONBOOT="yes"
変更後、network サービスを再起動します。正常に完了すると以下のような出力が表示されます。
# service network restart Restarting network (via systemctl): [ OK ]
また、すべての接続プロファイルを再読み込みするだけでも構いません。
# nmcli connection reload
DHCPから動的IPアドレスを取得する方法
サーバーがネットワーク上のDHCPサーバーから動的IPアドレスを取得する必要がある場合は、インターフェース設定ファイルを開いて設定を変更します。

IPアドレスやマスクに関連するパラメータをすべて削除し、IPアドレスの割り当て方式を dhcp に変更します(BOOTPROTO="dhcp")。変更後はnetworkサービスの再読み込みを忘れないようにしてください。
RHEL/CentOSでIPv6を無効化する方法
本記事の執筆時点では、IPv6はまだ広く活用されておらず、多くの管理者は可能であれば IPv4 を使うことを好みます。IPv6プロトコルを使用しないのであれば、サーバー上で無効化しておきましょう。どのサービスもIPv6で動作するよう設定されていないことが確実であれば、そのままネットワークインターフェースの設定に進めます。そうでない場合は、まず確認作業から始めるのが安全です。どのサービスがIPv6を使用しているかをチェックし、サービスごとの設定でプロトコルを無効化します。次のコマンドを実行してください。
# netstat -tulnp

このテストサーバーでは、「:::」と表示されていることから、sshdとchronydのみがIPv6を使用していることがわかります。
ネットワーク設定でIPv6を無効化した後に問題が発生しないよう、該当サービスでもプロトコルを無効にします。たとえばsshdの設定ファイルを開きます。
# mcedit /etc/ssh/sshd_config
以下の行のコメントを解除します。
#AddressFamily any #ListenAddress 0.0.0.0
そしてサービスを再起動します。
# service sshd restart

これでsshdからIPv6が利用できなくなりました。他のサービスに対しても同様の作業を行います。
続いて、ネットワーク設定でIPv6プロトコルを無効化します。/etc/sysctl.conf を開きます。
# nano /etc/sysctl.conf
以下の行を追加します。
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
ファイルを保存し、次のコマンドで変更を適用します。
# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
次に /etc/sysconfig/network を開き、以下の設定を追加します。
NETWORKING_IPV6=no IPV6INIT=no

ネットワークインターフェース設定ファイル /etc/sysconfig/network-scripts/ifcfg-eth0 からは、以下の行を削除します。
IPV6INIT="yes"
最後に、GRUBでもIPv6の使用を禁止します。
# nano /etc/default/grub
GRUB_CMDLINE_LINUX行の末尾に以下を追加します。
ipv6.disable=1

すべての変更を加えたら、ファイルを保存してGRUBを更新します。
# grub2-mkconfig -o /boot/grub2/grub.cfg
サーバーを再起動し、ネットワーク設定を確認します。
# ifconfig
これでサーバー上でIPv6プロトコルが無効化されました。
CentOS/RHELでのDNSネームサーバー設定
ホストのDNSネームサーバーは /etc/resolv.conf で設定するか、ネットワークインターフェースの設定で指定できます。Linuxネットワークインターフェースの静的構成を行う際、すでに以下のパラメータでDNSサーバーを指定しました。
DNS1= DNS2= DNS3=
必要なDNSサーバーを設定し、network サービスを再起動してください。
DNSネームサーバーは、ネットワーク設定ファイルから自動的に /etc/resolv.conf に登録されます。ネットワーク設定時にDNSサーバーを指定しなかった場合は、/etc/resolv.conf に手動で記述します。
nameserver 1.1.1.1 nameserver 8.8.8.8 nameserver 8.8.4.4
RHEL/CentOSで1つのネットワークインターフェースに複数のIPアドレスを割り当てる
1つのネットワークインターフェースで複数のIPアドレスを使用したい場合は、インターフェースエイリアスを作成するか、メインの設定ファイルに追加のIPアドレスを記述します。
# nano /etc/sysconfig/network-scripts/ifcfg-eth0
以下のように編集します。
# Generated by parse-kickstart UUID="b8bccd4c-fb1b-4d36-9d45-044c7c0194eb" IPADDR1="*.*.*.*" IPADDR2="*.*.*.*" GATEWAY="*.*.*.*" NETMASK="255.255.255.0" BOOTPROTO="static" DEVICE="eth0" ONBOOT="yes" DNS1=1.1.1.1 DNS2=8.8.8.8 DNS3=8.8.4.4
各パラメータの意味は次のとおりです。
IPADDR1 — 1つ目のIPアドレス
IPADDR2 — 2つ目のIPアドレス
GATEWAY — メインゲートウェイ
あるいは、メイン設定ファイルの エイリアス ファイルを作成します。
# nano /etc/sysconfig/network-scripts/ifcfg-eth0:1
そこに数行を追加します。ただし、ゲートウェイは指定しないでください。

すべての設定が完了したら、ネットワークサービスを再起動します。
# service network restart
なお、Windowsでも同様に1つのネットワークインターフェースへ複数のIPアドレス(エイリアス)を設定できます。
RHEL/CentOSでのVLAN(802.1Q)タグ付けの設定
CentOS/RHEL/Fedoraでネットワークインターフェースに複数のVLANを設定する方法の詳細については、「How To Configure 802.1Q VLAN Tagging on RHEL/CentOS Linux」の記事を参照してください。
RHEL/CentOSで複数のネットワークインターフェースを設定する
サーバーに複数のネットワークインターフェースがある場合は、それぞれに異なるIPアドレスを割り当てることができます。まず「ip a」コマンドでインターフェース情報を表示してみましょう。
# ip a
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 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:52:42:54:2c:36 brd ff:ff:ff:ff:ff:ff inet 15.*.*.*/16 brd 15.*.*.255 scope global eth0 valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 52:52:42:54:2c:b8 brd ff:ff:ff:ff:ff:f
2つ目のインターフェースを設定するには、専用の設定ファイルを作成します。
# nano /etc/sysconfig/network-scripts/ifcfg-eth1
以下の設定を追加します。
IPADDR="*.*.*.*" GATEWAY="*.*.*.*" NETMASK="255.255.255.0" BOOTPROTO="static" DEVICE="eth1" ONBOOT="yes"

次に、サーバーのデフォルトゲートウェイを設定する必要があります。現在どのゲートウェイが設定されているかを確認し、必要に応じて変更します。
# netstat -nr
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 15.*.*.1 0.0.0.0 UG 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 15.*.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 15.*.*.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
現在はeth1がメインゲートウェイになっています。これをeth0に変更しましょう。
# route add default gw *.*.*.*
※ eth0に指定したゲートウェイに置き換えてください。
# route delete default gw *.*.*.*
※ eth1のゲートウェイを削除します。

サーバー再起動後もこの設定を維持したい場合は、これらのコマンドを rc.local に追記してください(「RHEL/CentOSでサービスを起動時に自動実行する方法」の記事を参照)。
RHEL/CentOSで役立つネットワークコマンド一覧
ifdown eth1— 指定したネットワークインターフェースを無効化ifup eth1— 指定したネットワークインターフェースを有効化ifconfig— すべてのネットワークインターフェース情報を表示ifconfig -a | grep ether | gawk '{print $2}'— インターフェースのMACアドレスを表示ip a | grep ether | gawk '{print $2}'— 上記と同じ内容を ip a で実行service network restartまたはsystemctl restart network— networkサービスを再起動systemctl restart NetworkManager.service— NetworkManagerを再起動ip routeまたはip route show— Linuxのルーティングテーブルを表示ping host— 指定したホストへの疎通確認whois domain— ドメインのwhois情報を表示dig domain— ドメインのDNS情報を表示
RHEL/CentOSのネットワーク管理ツール
長期間稼働しているサーバーや自分で構成していないサーバーを引き継いだ場合、最初に行うべきは、どのインターフェースが存在するのかを把握することです。基本リポジトリから必要なツールをインストールしておくと便利です。
# yum install net-tools -y
インストール後、ifconfig が使えるようになります。
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 15.*.*.* netmask 255.255.255.0 broadcast 185.*.*.255
このように、ネットワークインターフェース名が eth0 であることが確認できます。
net-tools をインストールしていない場合は、次のコマンドでインターフェースを確認できます。
# ip a
出力結果はほぼ同じです。
CentOS/RHEL 8でのNetworkManagerによるネットワーク管理
RHEL/CentOS 8では、ネットワーク設定には NetworkManager のみを使用することが推奨されています。このサービスはネットワーク接続を管理し、設定を制御して、ネットワークアダプターに変更を適用します。
NMのステータスを確認するには、次のコマンドを使用します。
# systemctl status NetworkManager.service

CentOSでは、ネットワーク設定用にCUIの nmcli またはGUIツールの nmtui が提供されています。
ネットワーク設定モードに入るには、次のコマンドを実行します。
# nmtui

最初の項目を選択すると、編集対象のネットワークインターフェースを選ぶ画面が表示されます。

インターフェースを選択して編集します。

デバイス名、IPアドレス、ゲートウェイ、DNSサーバーを編集できます。また、NMの対話メニューからIPアドレスの割り当て方式をDHCPに変更することも可能です。

「manual」を「automatic」に変更します。

その後、変更を保存します。nmtuiを使えば、設定ファイルで行うのと同じ作業をGUIモードで実行できます。コマンドラインでインターフェースを設定したい場合はnmcliを使用します。たとえば、以下のコマンドでeth1のIPアドレス、ゲートウェイ、DNSサーバーを変更できます。
# nmcli con mod eth1 ipv4.addresses 192.168.11.24/24 # nmcli con mod eth1 ipv4.gateway 192.168.11.1 # nmcli con mod eth1 ipv4.dns "8.8.4.4"
変更を適用するには、インターフェースを再起動します。
# nmcli con up eth1
設定ファイルでの作業の方がやりやすい場合は、yumで特別なパッケージ network-scripts(CentOS 8にはデフォルトで含まれていません)をインストールしてください。
# yum install network-scripts -y
Upgraded: initscripts-10.00.1-1.el8_0.1.x86_64 Installed: network-scripts-10.00.1-1.el8_0.1.x86_64 network-scripts-team-1.27-10.el8.x86_64 Complete!
インストール後は、前述のとおり設定ファイルでネットワーク設定を編集できるようになります。

-
Windows 10でネットワーク設定をリセットする方法を徹底解説
Windowsでは、ネットワーク接続のトラブルは非常によく発生する問題です。Microsoftはパフォーマンス向上やセキュリティ修正を目的としたアップデートを頻繁にリリースしていますが、これらのアップデートが原因で新たな不具合が生じることもあります。その代表例が、Windows Update後に起こるネットワーク接続の問題です。すべてのユーザーに発生するわけではありませんが、頻繁にこのトラブルに悩まされる方も少なくありません。ネットワークに問題が発生しインターネットに接続できなくなると、ほとんどの機能がオンラインと同期されている現代において、PCはほぼ役に立たない状態になってしまいます。DNS
-
Windows 10でネットワーク設定をリセットする方法【設定アプリ・コマンドプロンプト対応】
パソコンで複数のネットワーク接続を使い分けて作業をしていると、接続にエラーが発生し、思うように動かなくなることがあります。こうした問題が繰り返し起こる場合は、Windows PCのネットワーク設定をリセットしてみるのが有効な選択肢です。この記事では、Windows 10および7でネットワーク設定をリセットする方法と、さまざまなネットワーク接続の問題を解決する方法をご紹介します。Windows 10でネットワーク設定をリセットする方法ネットワーク設定をリセットすると、システム上のネットワークアダプターが一度アンインストールされ、その後再インストールされます。同時に、ほとんどのネットワークコンポー