CLIによるFedoraネットワーク管理:nmcliとnmtuiの基本から応用まで

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

なぜFedoraのネットワーク管理においてCLIが依然として「王道」なのか?

FedoraをメインPCとして2年以上愛用していますが、その安定性は非常に素晴らしいものです。しかし、正直なところ、GNOMEのインターフェースがどれほど美しくても、リモートサーバーにSSHで接続しているときには全く役に立ちません。このような状況では、nmclinmtuiを使いこなせることは単なる選択肢ではなく、システム管理を円滑に行うための必須スキルとなります。

最近の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だけでネットワークを管理してみてください。生産性の違いを実感できるはずです。

Share: