なぜFedoraのネットワーク管理においてCLIが依然として「王道」なのか?
FedoraをメインPCとして2年以上愛用していますが、その安定性は非常に素晴らしいものです。しかし、正直なところ、GNOMEのインターフェースがどれほど美しくても、リモートサーバーにSSHで接続しているときには全く役に立ちません。このような状況では、nmcliとnmtuiを使いこなせることは単なる選択肢ではなく、システム管理を円滑に行うための必須スキルとなります。
最近のFedoraでは、設定の保存先が完全に/etc/NetworkManager/system-connections/配下の.nmconnection形式に移行しました。これらのファイルを直接手動で編集すると、設定の再読み込みを忘れた場合にエラーの原因となることがよくあります。コマンドラインツールを使用すれば、設定を正確に変更し、再起動なしですぐに適用することができます。
DeviceとConnectionの違い:混同に注意!
コマンドを入力する前に、誤った対象を設定しないよう、これら2つの概念を明確に区別しておく必要があります。
- Device(デバイス):
enp3s0のようなLANカードやwlp2s0のようなWi-Fiカードといった、実際のハードウェアを指します。 - Connection(接続): IP、DNS、ゲートウェイなどの設定プロファイル(設定情報)です。1つのネットワークカードに対して複数のプロファイル(例:自宅用と会社用)を持つことができますが、一度に有効にできるのは1つだけです。
1. nmtui:コマンドを覚えるのが苦手な方向けの解決策
nmcliのパラメータが複雑すぎると感じる場合、nmtui (Network Manager Text User Interface) は素晴らしい選択肢です。これはターミナルウィンドウ内で擬似的なグラフィカルインターフェースを提供します。
sudo nmtui
このツールを使えば、矢印キーとEnterキーだけで、静的IPの割り当てやホスト名の変更を数秒で行うことができます。ドキュメントを調べる時間がないときや、素早く操作したいときに特に便利です。
2. nmcliによるプロフェッショナルな静的IP設定
例えば、Webサーバーとして使用するためにenp1s0カードに静的IPを割り当てる必要があるとします。GUIで迷う代わりに、以下の正確なコマンドシーケンスを実行しましょう。
# 現在アクティブな接続名を確認
nmcli connection show
# IPアドレス 192.168.1.100、ゲートウェイ、DNSを設定
nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.100/24
nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8, 1.1.1.1"
nmcli con mod "Wired connection 1" ipv4.method manual
# 変更を有効化
nmcli con up "Wired connection 1"
メソッドをmanual(手動)に切り替えた瞬間、NetworkManagerは入力されたパラメータを優先し、DHCPを無視します。これがローカルネットワーク内でネットワークエンティティを固定する最短の方法です。
3. ネットワークボンディングの構築:帯域幅の拡大と冗長化
エンタープライズ環境では、1秒のネットワーク切断も大きな損失につながります。私はよく、2枚の1Gbpsネットワークカードを1つの2Gbps Bondポートにまとめたり、冗長化モード(active-backup)で運用したりします。
Bondマスターインターフェースの作成
nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup"
物理カード(スレーブ)をBondに割り当てる
nmcli con add type ethernet slave-type bond con-name bond0-port1 ifname eth0 master bond0
nmcli con add type ethernet slave-type bond con-name bond0-port2 ifname eth1 master bond0
nmcli con up bond0で有効化した後、/proc/net/bonding/bond0でステータスを確認できます。万が一ケーブルが1本抜けても、システムは100ms以内に残りのケーブルに切り替わり、サービスの中断を防ぎます。
4. VPN管理:GUIだけではない管理手法
FedoraはCLIを介したWireGuardやOpenVPNのサポートが充実しています。これは、サーバーの起動時にVPNを自動接続させたい場合に非常に便利です。
OpenVPN設定のクイックインポート
sudo nmcli connection import type openvpn file /path/to/office_vpn.ovpn
nmcli con up office_vpn
WireGuardの設定
WireGuardを使用すると、直接接続を作成できます。
nmcli connection add type wireguard con-name wg-work ifname wg0 autoconnect yes
nmcli connection edit wg-workコマンドを使用して、秘密鍵(Private Key)やピア(Peer)を微調整します。この方法により、ルーティングテーブルを一元管理し、自宅ネットワークと会社ネットワーク間のIP競合を避けることができます。
ネットワークが「消えた」時のトラブルシューティング
設定後にネットワークへの疎通(ping)が確認できない場合でも、慌てないでください。まずはデバイスの状態を確認しましょう。
nmcli device status
もし誤ってvimなどで設定ファイルを直接編集してしまった場合は、以下のコマンドでNetworkManagerに新しいファイルを強制的に再認識させます。
sudo nmcli connection reload
sudo nmcli connection load /etc/NetworkManager/system-connections/my-office.nmconnection
詳細なエラーを調査するには、リアルタイムログを監視します:journalctl -u NetworkManager -f。IPの割り当て拒否やWi-Fiパスワードの誤りに関する通知はすべてここに表示されます。
おわりに
nmcliを使いこなすことで、Fedoraでの作業プロセスをプロフェッショナルなものにできます。マウスをクリックして時間を浪費する代わりに、数行のコマンドによるスクリプト化を行うことで、ネットワークインフラをより迅速かつ正確に展開できるようになります。来週はGUIをオフにして、CLIだけでネットワークを管理してみてください。生産性の違いを実感できるはずです。

