最近、IPアドレスの設定で、NetworkManagerを使用する機会が増えいている気がします。
NetowrkManagerは、RedHatさんが2004年頃に開発したそうですが、近年、採用するディストリビューションが増えてきた感じでしょうか。
具体的には、nmcliコマンドで設定を行いますが、コネクションをUUIDで扱うため、設定し辛い、手間が多い印象です。
もう少し、設定しやすく。sshでターミナル接続した場合に、メニュー選択形式でIPアドレス設定が行えるように、tui(Terminal User Interface)版のNetworkManagerコマンド、nmtuiを導入してみたいと思います。
目次
NetworkManagerのnmtuiコマンド覚書
対象の環境はnmcliコマンドでIPアドレスを設定するとき
RedHatさんの系列のディストリビューションにてNetworkManagerが導入されていると思いますが。
Ubuntuが導入されたJetson Nanoや
Debianが導入されたTinker Board 2等でもnmcliコマンドによるIPアドレス設定が有効です。
これらの環境で、nmcliではなくもう少し簡単にIPアドレスを設定できるようにしたいと思います。
nmtuiコマンドのインストール
今回は、Raspberry Pi 4にてRocky Linuxを起動し、sshでターミナル接続した状態を想定しました。
Rocky Linuxは、Red Hat Linux互換、CentOSと同じ系列になります。dnfコマンドでインストールしました。
sudo dnf install -y NetworkManager-tui
nmtuiコマンドによるネットワーク設定
sudo nmtui
nmtuiコマンドを実行すると、3つのメインメニューが表示されます。
- Edit a connection コネクションの編集
- Activate a connection コネクションの有効化・Wi-Fi設定
- Set systen hostname ほすとねーむ設定
それぞれ、下記のコマンドに対応しているようです。
- nmtui-edit
- nmtui-connect
- nmtui-hostname
メインメニュー経由ではなく、これらのコマンドを直接実行しても問題無さそうです。
nmtui-editはIPアドレスの編集など
実際に、「Edit a connection」を選択後、有線LAN接続のコネクションである「Wired connection 1」を設定してみます。
nmtui-editは、コネクションの設定メニュー画面になります。有線LANやWi-FIの設定、IPアドレス等を設定可能です。
IPアドレスを固定したい場合は、IPv4 CONFIGURATION欄をAutomaticからManualに変更後、<Show>を選択して設定します。
- Address欄に、IPアドレス/サブネットマスクのビット数 ←重要
- Gateway欄にゲートウェイアドレス
- DNS Servers欄にDNSサーバアドレス
IPアドレス欄に、サブネットマスクを忘れずに入れましょう。
コネクションの設定反映はコマンドか再起動
IPアドレスを変更した場合など、変更の反映は、tuiからはできない感じがします。
本体を再起動するか、または下記のコマンドで設定変更を反映します。
# コネクション確認
nmcli c
# コネクション有効化 コネクション名称
sudo nmcli connection up "Wired connection 1"
# またはUUID
sudo nmcli connection up <UUID>
こちらのコマンドを実行すると、即IPアドレスが変わりますのでご注意下さい。
nmtui-connectはWi-Fi設定とコネクションの有効・無効切替
「Activate a connection」を選択しますと。
先程編集した、「Wired connection 1」に「*」マークが表示されています。これは有線接続が有効である意味です。「Deactivate」は無効化になります。
Wi-Fiを使用したい場合、表示されたSIDを有効化する流れになります。
Wi-Fiのパスワードを入力し、コネクションを有効化することで、Wi-Fiによる接続が有効になります。
ちなみに、有線LANでWi-Fi設定をアクティベートしたところ、ssh接続がフリーズしてしまいました。パスワードの入力画面で、有線LANが無効になったのでしょうか?
Wi-Fiの設定を行いたい場合は、ssh接続ではなく、コンソール、マシンに接続したキーボードとディスプレイで設定したほうが良いかもしれません。
nmtui-hostname
最後に、ホスト名の設定は。 単純にホスト名を入力して、<OK>を選択します。
ディストリビューションによって、/etc/hostsファイルに、古いホスト名が残っている場合がありますので、確認したほうが良いと思います。
Raspberry Pi 4のRocky Linuxは、/etc/hostsファイルにホスト名は無いため、上記のnmtui-hostnameによる設定のみで完了しました。
NetworkManagerは、デーモンで実装されているそうです。
具体的にはsystemdのNetworkManager.serviceのユニットになります。
これはつまり、ログを見たい場合は、昔ながらのdmesgや/var/log/messageファイルではなく、journalctl -u NetworkManagerにて、systemdにより記録されたジャーナルを細かく確認できることを意味します。
そのような利点があることを認識しつつ、NetworkManagerを使用したほうが意味があるのかな、と思いますです。
設定で楽をする意味で、nmcliではなくnmtuiで設定しましょう。