Raspberry PiのdhcpcdをやめてNetworkManagerを入れてみる

NetworkManagerを入れてみる
Raspberry Piのネットワーク管理をNetworkManagerに替えてみます。
お手軽にVPN接続やHOTSPOT化ができます。


少し前のRaspbianはifupdownでネットワークの設定をしていました。/etc/network/interfacesにインターフェース毎に細かい設定を書いていました。
それが最近のRaspbianではifupdownを使わないようになりdhcpcdを使うようになりました。しかしdhcpcdはネットワークの細かい設定をしにくいです。ネットで検索してもカスタマイズの情報は多くありません。
この変更にはRaspberry Piという教育用コンピュータ特有の何か理由があるのでしょう。Raspberry Piの有線LANと無線LANをつないでインターネットが動くのを見る分には何も考えずに使えます。でも少し凝ったことをしたいと思うと何もできない感じです。
関連記事:dhcpcdを使っている時にmtu値を変更する方法
う~ん、入門時はいいけどその先へ行けないような・・・Raspbianはなぜdhcpcdなの?

Raspbianの本家のOS Debianでもすでにifupdownは使わないようになっています。で、替わりはdhcpcdかというとそんな事はなくNetworkManagerを使うようになりました。Debian系のUbuntuもNetworkManagerへ移行しています。
ASUSのTinker BoardのTinker OSもDebian系でNetworkManagerを使っています。

私はRaspbianの基本的な構成を大きく変えるカスタマイズはしないよう心がけていました。ですがdhcpcdでは実現しにくい事が多すぎます。
VPN接続したい、HOTSPOT化したいなどやろうとするとdhcpcdを停止してifupdownを動かす事になってしまいます。新しい情報は少なく古い情報を頼る事になり時代に逆行してしまうのです。

どうせdhcpcdを止めることになるならNetworkManagerを使うようにしてみます。何よりDebian系の他のOSと設定を共通化させるのが容易になります。


難しいところは何もなく、dhcpcdを止めてNetworkManagerを入れるだけです。
そのうちRaspbianもNetworkManagerを使うようになるんじゃないかな?

NetworkManagerに入れ替える

dhcpcdの停止

ネットワーク越しにいじる場合には有線LANをつないでください。WiFi経由ではdhcpcdを停止した時点でネット接続は切断されます。
dhcpcdを停止し起動時に動かないようにします。
sudo systemctl stop dhcpcd.service
sudo systemctl disable dhcpcd.service

NetworkManagerのインストール

レポジトリを更新します。
sudo apt update
sudo apt upgrade
NetworkManagerをインストールします。
sudo apt install network-manager network-manager-gnome
gnomeと付くのはデスクトップ用ツールです。

NetworkManagerの有効化

NetworkManagerが動くようにします。
sudo systemctl enable NetworkManager.service
sudo systemctl start NetworkManager.service
大文字小文字に注意してタイプしてください。

追加の設定プログラム

VPNを追加できます。VPNのプロトコル毎にライブラリが必要です。一覧を表示させてみます。
apt list Network*
一覧表示... 完了
network-config/stable 0.2-2 all
network-manager/stable,now 1.6.2-3+deb9u2 armhf [インストール済み]
network-manager-dev/stable 1.6.2-3+deb9u2 armhf
network-manager-gnome/stable,now 1.4.4-1+deb9u1 armhf [インストール済み]
network-manager-iodine/stable 1.2.0-1 armhf
network-manager-iodine-gnome/stable 1.2.0-1 armhf
network-manager-openconnect/stable 1.2.4-1 armhf
network-manager-openconnect-gnome/stable 1.2.4-1 armhf
network-manager-openvpn/stable 1.2.8-2 armhf
network-manager-openvpn-gnome/stable 1.2.8-2 armhf
network-manager-pptp/stable,now 1.2.4-2 armhf [インストール済み]
network-manager-pptp-gnome/stable,now 1.2.4-2 armhf [インストール済み]
network-manager-ssh/stable 1.2.1-1 armhf
network-manager-ssh-gnome/stable 1.2.1-1 armhf
network-manager-strongswan/stable 1.4.1-1 armhf
network-manager-vpnc/stable 1.2.4-4+deb9u1 armhf
network-manager-vpnc-gnome/stable 1.2.4-4+deb9u1 armhf
networking-mlnx-common/stable 1:9.0.0~b1-1 all
networking-mlnx-eswitchd/stable 1:9.0.0~b1-1 all
例えばpptpなら
sudo apt install network-manager-pptp network-manager-pptp-gnome
とします。
OpenVPNなら
sudo apt install network-manager-openvpn network-manager-openvpn-gnome
です。

NetworkManagerの設定

ほとんどの設定はデスクトップのツールでできるでしょう。
デスクトップを使わない、入れていない場合でもターミナル用の設定ツールがあります。
nmtui
/etc/network/interfacesに何か書かれていればそれも反映されるようですが、競合する設定があったらどうなるか?など面倒なので/etc/network/interfacesは廃止する方向で使うのが良いでしょう。

コメント

最近のコメント

Threaded Recent Comments will be here.