【Linux】IPアドレスを確認/変更するならNetworkManagerが超簡単!

今回は、最近のLinuxでは標準のネットワーク管理方法となったNetworkManagerの操作を説明します。

Linuxでネットワーク設定を確認するのっていろんなコマンドを駆使して面倒だよね。
最近のLinuxだと設定内容がどこに記録されているのかよく分からないんだよな。

といった内容で困っているあなたが

え、今はこんなに簡単なの!?

と驚く記事になっています。だまされたと思ってぜひ最後まで読んでください!

今回は、Ubuntuから派生しているLinux Mint Cinnamonエディション(18.3)での操作を説明しますが、NetworkManagerがインストールされているLinuxディストリビューションであれば、同じ操作でいけます。

では、始めましょう。

目次

NetworkManagerとは

NetworkManagerは、Red Hat, Inc.が開発したアプリケーションです。

Linuxでネットワーク設定を簡素化するために開発が進められています。当初は、GUIのみが提供されていましたが、その後CUI(nmcli)やテキストユーザーインターフェース(nmtui)などのインターフェースが提供されました。

現在では、一部では非常に便利なアプリケーションとして知られてきていますが、この記事を書いた時点ではGoogleで「Linux IP アドレス」で検索すると、旧来のifconfigコマンド、ipコマンド、hostnameコマンドなどによる操作方法が紹介された記事が上位に表示されてしまいます。

この事実が残念でたまらないので、今回この記事を書いています!なお、NetworkManagerについては、Wikipedia(英語)の記事も参考になると思いますので、あわせてご覧ください。

参考:https://en.wikipedia.org/wiki/NetworkManager

IPアドレスを確認する

IPアドレスの確認だけはNetworkManagerのGUIの操作を説明しましょう。この操作だけは、Linuxディストリビューションによって操作が異なります。操作が分からない場合は、Linuxディストリビューションの説明書などをご覧ください。

(1)「linux-ip-addr01-2」をクリックし、「ネットワーク設定」をクリックします。

linux-ip-addr01

「ネットワーク」画面が表示されます。

linux-ip-addr02

IPv4アドレス(IPアドレス)、IPv6アドレス、ハードウェアアドレス(MACアドレス)、デフォルトルート(デフォルトゲートウェイ)、DNSが表示されていますね。非常に簡単です。

次に、端末から同じ情報を確認する操作を説明しましょう。

(1)「端末」をクリックします。

linux-ip-addr03

(2)「nmcli device show」と入力し、Enterキーを押します。以下のようにネットワーク設定に関する情報が表示されます。

GENERAL.デバイス:                       enp0s3
GENERAL.タイプ:                         ethernet
GENERAL.ハードウェアアドレス:           08:00:27:73:4C:C1
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           有線接続 1
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        10.0.2.15/24
IP4.ゲートウェイ:                       10.0.2.2
IP4.ルート[1]:                          dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]:                             XXX.XXX.XXX.XXX
IP4.DNS[2]:                             YYY.YYY.YYY.YYY
IP4.ドメイン[1]:                        xxxxxx.yy.zzzz.ne.jp
IP6.アドレス[1]:                        fe80::9970:ddf3:c4aa:477/64
IP6.ゲートウェイ:

GENERAL.デバイス:                       lo
GENERAL.タイプ:                         loopback
GENERAL.ハードウェアアドレス:           00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.状態:                           10 (管理無し)
GENERAL.接続:                           --
GENERAL.CON パス:                       --
IP4.アドレス[1]:                        127.0.0.1/8
IP4.ゲートウェイ:
IP6.アドレス[1]:                        ::1/128
IP6.ゲートウェイ:

ここでも、IP4.アドレス[1](IPアドレス)、IP6.アドレス[1](IPv6アドレス)、GENERAL.ハードウェアアドレス(MACアドレス)、IP4.ゲートウェイ(デフォルトゲートウェイ)、IP4.DNS[1]、IP4.DNS[2](DNS)が表示されています。

ifconfigコマンドやip address showコマンドを駆使して調べるのと比較すると、驚くほど簡単ですね!

IPアドレスを固定する

これ以降は、GUIの操作は省略して、CUI(nmcli)だけで説明しましょう。

(1)「端末」をクリックして、端末を起動します。

(2)「nmcli connection modify ‘有線接続 1’ ipv4.method manual ipv4.addresses 10.0.2.100/24 ipv4.gateway 10.0.2.2 ipv4.dns “8.8.8.8 8.8.4.4″」と入力し、Enterキーを押します。少し長いので、各単語(オプション)の意味を説明します。

入力説明
modify '有線接続 1'「有線接続 1」のネットワーク設定を変更する。「有線接続 1」は、上で説明した「nmcli device show」の実行結果に表示されていた「GENERAL.接続」の値です。
ipv4.method manualIPアドレスを手動設定にする。DHCPから取得する場合はipv4.method autoを設定します。
ipv4.addresses 10.0.2.100/24IPアドレスを「10.0.2.100/24」に設定する。
ipv4.gateway 10.0.2.2デフォルトゲートウェイを「10.0.2.2」に設定する。
ipv4.dns “8.8.8.8 8.8.4.4”プライマリDNSサーバーを「8.8.8.8」、セカンダリーDNSサーバーを「8.8.4.4」に設定する。

(3)以下のコマンドを1行ずつ入力します。ここで入力する「enp0s3」は、上で説明した「nmcli device show」の実行結果に表示されていた「GENERAL.デバイス」の値です。

nmcli device disconnect enp0s3
nmcli device connect enp0s3

これで設定が反映されましたので、確認してみましょう。

(4)「nmcli device show」と入力し、Enterキーを押します。

GENERAL.デバイス:                       enp0s3
GENERAL.タイプ:                         ethernet
GENERAL.ハードウェアアドレス:           08:00:27:73:4C:C1
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           有線接続 1
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        10.0.2.100/24
IP4.ゲートウェイ:                       10.0.2.2
IP4.ルート[1]:                          dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4
IP6.アドレス[1]:                        fe80::9970:ddf3:c4aa:477/64
IP6.ゲートウェイ:

GENERAL.デバイス:                       lo
GENERAL.タイプ:                         loopback
GENERAL.ハードウェアアドレス:           00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.状態:                           10 (管理無し)
GENERAL.接続:                           --
GENERAL.CON パス:                       --
IP4.アドレス[1]:                        127.0.0.1/8
IP4.ゲートウェイ:
IP6.アドレス[1]:                        ::1/128
IP6.ゲートウェイ:

確かに反映されていますね。

IPアドレスを追加する

ここもnmcliコマンドだけで解決しましょう。

(1)「端末」をクリックして、端末を起動します。現在の設定を確認しておきましょう。

(2)「nmcli device show」と入力し、Enterキーを押します。

GENERAL.デバイス:                       enp0s3
GENERAL.タイプ:                         ethernet
GENERAL.ハードウェアアドレス:           08:00:27:73:4C:C1
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           有線接続 1
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        10.0.2.100/24
IP4.ゲートウェイ:                       10.0.2.2
IP4.ルート[1]:                          dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4
IP6.アドレス[1]:                        fe80::9970:ddf3:c4aa:477/64
IP6.ゲートウェイ:

GENERAL.デバイス:                       lo
GENERAL.タイプ:                         loopback
GENERAL.ハードウェアアドレス:           00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.状態:                           10 (管理無し)
GENERAL.接続:                           --
GENERAL.CON パス:                       --
IP4.アドレス[1]:                        127.0.0.1/8
IP4.ゲートウェイ:
IP6.アドレス[1]:                        ::1/128
IP6.ゲートウェイ:

まだIP4.アドレス(IPアドレス)は1つだけですね。

(3)「nmcli connection modify ‘有線接続 1’ +ipv4.addresses “10.0.2.101/24″」と入力し、Enterキーを押します。「有線接続 1」は、上で説明した「nmcli device show」の実行結果に表示されていた「GENERAL.接続」の値です。

IPアドレスを削除する場合は、「+」を「-」にします

(4)以下のコマンドを1行ずつ入力します。「enp0s3」は、上で説明した「nmcli device show」の実行結果に表示されていた「GENERAL.デバイス」の値です。

nmcli device disconnect enp0s3
nmcli device connect enp0s3

これで設定が反映されました。設定を確認してみると…

(5)「nmcli device show」と入力し、Enterキーを押します。

GENERAL.デバイス:                       enp0s3
GENERAL.タイプ:                         ethernet
GENERAL.ハードウェアアドレス:           08:00:27:73:4C:C1
GENERAL.MTU:                            1500
GENERAL.状態:                           100 (接続済み)
GENERAL.接続:                           有線接続 1
GENERAL.CON パス:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.キャリア:              オン
IP4.アドレス[1]:                        10.0.2.100/24
IP4.アドレス[2]:                        10.0.2.101/24
IP4.ゲートウェイ:                       10.0.2.2
IP4.ルート[1]:                          dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4
IP6.アドレス[1]:                        fe80::9970:ddf3:c4aa:477/64
IP6.ゲートウェイ:

GENERAL.デバイス:                       lo
GENERAL.タイプ:                         loopback
GENERAL.ハードウェアアドレス:           00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.状態:                           10 (管理無し)
GENERAL.接続:                           --
GENERAL.CON パス:                       --
IP4.アドレス[1]:                        127.0.0.1/8
IP4.ゲートウェイ:
IP6.アドレス[1]:                        ::1/128
IP6.ゲートウェイ:

確かにIP4.アドレス[2]が追加され、IPアドレスが2つになっていますね!

まとめ

今回は、最近のLinuxでは使用が推奨されているNetworkManagerを使って、IPアドレスを確認したり、固定IPアドレスを利用したり、1つのネットワークカードに2つのIPアドレスを追加したりしました。

旧来のifconfigコマンド、ipコマンド、hostnameコマンドを駆使して頑張っていた時代から考えると、コマンドも一貫していて非常に使いやすくなっていましたね!

NetworkManagerのような便利なコマンドが追加されても、Googleで検索すると古い記事がたくさん表示され、そちらが正しいかのように見えてしまうのは非常に残念です。

記事によっては、NetworkManagerを停止して旧来の方法で設定した方がいいかのように書かれている場合も…。この記事を通じて新しい方法(といってもリリースされてから10年以上経っていますが)に移行する人が増えてくれると嬉しいです!

それでは。

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次