CentOS のネットワーク設定方法を、GUI 環境, CUI 環境, nmcli コマンド、手動で設定と環境による設定の違い方法を紹介します。
目次
GUI 環境での ネットワーク設定変更
GNOMEのGUI環境でのネットワーク設定変更は至って簡単です。画面右上のアイコンをクリックして、メニューの左下の「設定」アイコンをクリックします。
設定画面が表示されるので「Network」アイコンをクリックします。
ネットワーク設定画面が起動するので、右のメニューから設定を行うデバイス「有線」を選択して設定をクリックします。
IPv4 もしくはIPv6と設定するバージョンを選択して値を入力します。
CUI 環境での nmtui (Network Manager Text User Interface) による設定変更
AWS(Amazon Web Services)や、GCP(Google Cloud Platform) のようなリモートサーバは、GUI環境が無いのでGUI環境のような設定変更は行えません。しかし nmtui (Network Manager Text User Interface) というテキストインターフェースによるネットワーク設定ツールがあるので、そちらを使ってIPアドレス、ネットマスク、ゲートウェイ、DNS、検索ドメイン、MTUの設定などを行う事が出来ます。
nmtuiは、Network Managerと通信を行い設定を行うツールです。
Network Manager はネットワーク制御、設定システムで、ネットワークの接続状態を監視して、ネットワークが常に接続状態であるように監視を行ってくれています。GUIログイン時、インジケータにネットワークのステータスが表示されますが、インジケータもGUIのネットワーク設定ツールも、Network Managerと通信を行いネットワークの状態取得し設定の変更を行っています。
nmtui は、以下のコマンドで実行します。
$ sudo nmtui
「接続の編集」を選択します。
変更を行うデバイス(enp0s3)を選択して「編集」を選択します。
デフォルトでは、自動設定(DHCP)になっているので、「表示する」を選択すると、MTU、アドレス、ネットマスク、ゲートウェイ、DNS、検索ドメインの設定が行えます。設定完了後「OK」を選択してメイン画面に戻ります。
次に「接続をアクティベートする」を選択します。
一旦「解除」を選択してもう一度「アクティベート」を選択すると変更したネットワークの設定が有効になります。
ホスト名を変更したい場合は、「システムのホスト名を設定する」選択します。
ホスト名を入力して「OK」を選択します。ログインし直せば、ターミナルのプロンプトのホスト名が変更されますが、システム全体に反映したい場合は、システムを再起動します。
nmcli コマンドによる設定変更
nmcli(Network Manager command-line)は、nmtuiと同様にNetwork Managerと通信を行いネットワークの設定を行うツールです。
nmcliは、nmtuiと同等の機能を提供するので、通常のネットワーク設定は、視覚的に分かりやすいnmtuiを使用すればよいですが、より詳細な情報を知りたい場合や、ネットワークの設定を変更するスクリプトなどを作成する場合、nmcliコマンドを使うと良いでしょう。
なお、設定を参照するコマンドは一般ユーザで実行可能ですが、変更を行う作業はroot権限が必要なのでsudoを付加して実行します。
nmcli コマンドは以下のように実行します。
$ nmcli [オプション] オブジェクト { コマンド | ヘルプ }
主に使用するオプション
-h: ヘルプを表示する。
-p: 読みやすい形式で出力する
-a: パラメーターが足りない場合問い合わせる
-w: 動作完了までのタイムアウトを設定する
オブジェクト
g[eneral]: NetworkManagerの全般的な状態と動作
c[onnection]: NetworkManagerの接続状況
d[evice]: NetworkManagerで管理しているデバイス
n[etworking]: ネットワーク制御に関する全般
r[adio]: NetworkManagerラジオスイッチ
・ヘルプの表示
$ nmcli help $ nmcli オブジェクト help $ nmcli オブジェクト コマンド help
・NetworkManager の全般的ステータスを表示します。
$ nmcli general status 状態 接続性 WIFI ハードウェア WIFI WWAN ハードウェア WWAN 接続済み 完全 有効 有効 有効 有効 コマンドは以下のように全て短縮して実行できます。 $ nmcli g s 状態 接続性 WIFI ハードウェア WIFI WWAN ハードウェア WWAN 接続済み 完全 有効 有効 有効 有効
・NetworkManager のログ情報を表示します。
$ nmcli general logging レベル ドメイン INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD ログレベルの変更は以下のとおり。 $ sudo nmcli general logging level DEBUG
・全ての接続情報を表示します。
$ nmcli connection show 名前 UUID タイプ デバイス MyAccessPoint e42fe936-7168-11e6-a370-bbf03d6838e9 802-11-wireless wlp4s0 enp3s0 eec7e786-7168-11e6-9cc8-5f5aeb5d59a8 802-3-ethernet enp3s0 Buffalo-G-XXXX f1137e56-7168-11e6-894b-3bb595740d07 802-11-wireless -- <- 設定が保存されているが未接続の場合
・NetworkManager が認識するデバイスとその状態を表示します。
$ nmcli device show GENERAL.デバイス: enp0s3 GENERAL.タイプ: ethernet GENERAL.ハードウェアアドレス: 08:00:00:11:22:33 GENERAL.MTU: 1500 GENERAL.状態: 10 (管理無し) GENERAL.接続: -- GENERAL.CON パス: -- WIRED-PROPERTIES.キャリア: オン IP4.アドレス[1]: 192.168.0.5/24 IP4.ゲートウェイ: 192.168.0.1 IP6.アドレス[1]: fe80::a00:27ff:0011:2233/64
・nmcliでEthernetの設定をする。
プロファイルを追加します。 インターフェイス名 プロファイル名 $ sudo nmcli connection add type ethernet ifname enp0s3 con-name enp0s3 プロファイルを削除します。 プロファイル名 $ sudo nmcli connection delete enp0s3 アドレスの手動設定。 プロファイル名 IPアドレス/サフィックス ゲートウェイ DNS $ sudo nmcli connection modify enp0s3 ipv4.method manual ipv4.addresses 192.168.0.5/24 ipv4.gateway 192.168.0.1 ipv4.dns 8.8.8.8 アドレスのDHCP設定 プロファイル名 IPアドレスの設定はauto $ sudo nmcli connection modify enp0s3 ipv4.method auto
・nmcliでnmcliでWi-Fi の設定をする
プロファイルを追加します。 インターフェイス名 プロファイル名 SSID $ sudo nmcli connection add type wifi ifname wlp4s0 con-name wlp4s0 ssid SSID Wi-Fiアクセスポイントに接続する場合 SSID パスワード $ sudo nmcli device wifi connect SSID password PASSWORD
・利用可能な Wi-Fi アクセスポイントを表示する。
$ nmcli device wifi list * SSID モード CHAN レート 信号 バー セキュリティ * MyAccessPoint インフラ 5 54 Mbit/s 76 ▂▄▆_ WPA1 W logitec5555 インフラ 1 54 Mbit/s 42 ▂▄__ WP Buffalo-G-0000 インフラ 1 54 Mbit/s 22 ▂___ WPA Buffalo-G-1111 インフラ 9 54 Mbit/s 19 ▂___ WPA aterm-222222-g インフラ 2 54 Mbit/s 17 ▂___ WPA1 WPA :
・インターフェイスの起動停止
$ sudo nmcli connection down enp0s3 $ sudo nmcli connection up enp0s3
・Wi-Fiの開始、停止する場合。
$ nmcli radio wifi on $ nmcli radio wifi off
ホスト名の変更をする。
ホスト名を表示する $ nmcli general hostname hostname ホスト名を変更する。 $ sudo nmcli general hostname myserver
nmcli ツールには、接続タイプを対話形式で選択することが出来る、インタラクティブ接続エディターというものがあります。
・設定ウィザード形式で設定する。
$ sudo nmcli connection edit (process:28550): nmcli-CRITICAL **: check_valid_name: assertion 'val' failed 有効な接続タイプ: generic, 802-3-ethernet (ethernet), pppoe, 802-11-wireless (wifi), wimax, gsm, cdma, infiniband, adsl, bluetooth, vpn, 802-11-olpc-mesh (olpc-mesh), vlan, bond, team, bridge, bond-slave, team-slave, bridge-slave, no-slave, tun, ip-tunnel, macvlan, vxlan 接続タイプを入力してください: ethernet <- 接続タイプを ethernet に設定。 nmcli> describe ipv4 <- ipv4 の設定方法を表示 <<< ipv4 >>> === [method] === [Network Manager プロパティの詳細] IP configuration method. NMSettingIP4Config and NMSettingIP6Config both support "auto", "manual", and "link-local". See the subclass-specific documentation for other values. In general, for the "auto" method, properties such as "dns" and "routes" specify information that is added on to the information returned from automatic configuration. The "ignore-auto-routes" and "ignore-auto-dns" properties modify this behavior. For methods that imply no upstream network, such as "shared" or "link-local", these properties must be empty. For IPv4 method "shared", the IP subnet can be configured by adding one manual IPv4 address or otherwise 10.42.x.0/24 is chosen. : nmcli> set ipv4.method auto nmcli> save <- 設定完了後は保存します。 Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection. Do you still want to save? (はい/いいえ) [はい] はい 接続 'ethernet-1' (111ffe9f-34db-41d4-b5f7-024573add7fa) が正常に保存されました。 nmcli> quit <- 終了します。
※ nmtui、nmcli コマンドで設定した値は、
CentOS の場合 /etc/sysconfig/network-scripts/ifcfg-プロファイル名 Ubuntu の場合 /etc/NetworkManager/system-connections/デバイス名 に保存されます。 /etc/sysconfig/network-scripts/ifcfg-XXX TYPE="Ethernet" BOOTPROTO=none DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" NAME="XXX" UUID="8a2048e1-f1f4-4ea0-0000-112233445566" DEVICE="XXX" ONBOOT="yes" DNS1=192.168.0.1 IPADDR=192.168.0.2 PREFIX=24 GATEWAY=192.168.0.1 IPV6_PEERDNS=yes IPV6_PEERROUTES=yes /etc/NetworkManager/system-connections/XXX [connection] id=enp3s0 uuid=255a5141-6499-450a-0000-112233445566 type=ethernet interface-name=XXX permissions= secondaries= [ethernet] mac-address-blacklist= [ipv4] dns-search= method=auto [ipv6] addr-gen-mode=stable-privacy dns-search= method=auto
Network Manager を使用しない手動設定方法
Network Manager を使用しないで、昔ながら /etc/sysconfig/network-scripts/ 配下のファイルを使用したい人は、NetworkManager.service を停止、無効にします。
$ sudo systemctl stop NetworkManager.service $ sudo systemctl disable NetworkManager.service Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service. Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service. Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service. [/etc/sysconfig/network-scripts/ifcfg-有線接続] @@ -3,7 +3,6 @@ TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no -BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes @@ -15,3 +14,10 @@ UUID=daeff0e6-a40c-320e-a4a1-0c1ef95e6640 ONBOOT=yes AUTOCONNECT_PRIORITY=-999 +BOOTPROTO=static +DNS1=8.8.8.8 +DNS2=8.8.4.4 +DOMAIN=mydomain.com +IPADDR=192.168.0.10 +NETMASK=255.255.255.0 +GATEWAY=192.168.0.1 [/etc/sysconfig/network] NETWORKING=yes GATEWAYDEV=eth0 NETWORKING_IPV6=yes IPV6_DEFAULTDEV=eth0 GATEWAY=192.168.100.1 [/etc/hostname] mydomain.com 設定の反映 $ sudo systemctl daemon-reload $ sudo systemctl restart network
IPv6を無効にする
IPv6を無効にしたい場合は、
[/etc/sysctl.d/98-disableipv6.conf] net.ipv6.conf.all.disable_ipv6=1 設定の反映 $ sudo sysctl -p $ sudo sysctl -a|grep disable_ipv6 net.ipv6.conf.all.disable_ipv6 = 1