今回は、最近のLinuxでは標準のネットワーク管理方法となったNetworkManagerの操作を説明します。
最近の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)「」をクリックし、「ネットワーク設定」をクリックします。
「ネットワーク」画面が表示されます。
IPv4アドレス(IPアドレス)、IPv6アドレス、ハードウェアアドレス(MACアドレス)、デフォルトルート(デフォルトゲートウェイ)、DNSが表示されていますね。非常に簡単です。
次に、端末から同じ情報を確認する操作を説明しましょう。
(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/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 manual | IPアドレスを手動設定にする。DHCPから取得する場合はipv4.method autoを設定します。 |
ipv4.addresses 10.0.2.100/24 | IPアドレスを「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年以上経っていますが)に移行する人が増えてくれると嬉しいです!
それでは。