ワイヤレス接続の設定

LinuxBeginner
オンラインで実践に進む

はじめに

この実験(Lab)では、Linux システム上でコマンドラインからワイヤレスネットワーク接続を管理するための基礎を学びます。ここでは、NetworkManager のコマンドラインインターフェースである nmcli を使用します。NetworkManager は、ほとんどの最新の Linux ディストリビューションで標準的に提供されているサービスであり、ネットワーク設定を簡素化します。nmcli を使用することで、グラフィカルユーザーインターフェース(GUI)を必要とせずに、ネットワークのスキャン、接続、切断、および接続プロファイルの管理を行うことができます。

この実験(Lab)では、ワイヤレス接続を制御するための必須コマンドを順を追って説明します。これは、Linux 管理者やパワーユーザーにとって不可欠なスキルです。シミュレートされた環境で作業を行いますが、ここで学ぶコマンドと概念は、ワイヤレスカードを搭載した実世界の Linux マシンにも直接適用可能です。ワイヤレスデバイスをシミュレートすることは可能ですが、この環境には実際に接続できる Wi-Fi ネットワークが存在しないことに注意してください。そのため、アクティブな接続を確立する関連コマンドの一部は完全に成功しませんが、完全なワークフローを学習することができます。

nmcli device wifi list コマンドを使用したネットワークのスキャン

このステップでは、利用可能なワイヤレスネットワークをスキャンする方法を学びます。これは、新しい Wi-Fi ネットワークに接続しようとする際に行う最初の操作です。nmcli ツールは、検出可能なすべての Wi-Fi アクセスポイントを一覧表示するための簡単なコマンドを提供します。

まず、ワイヤレスデバイスの名前を特定します。次のコマンドを実行してください。

nmcli device

タイプが wifi のデバイスが表示されるはずです。デバイス名は通常 wlan0 です。後のステップでこの名前を使用します。出力には、eth0docker0 のような追加のネットワークデバイスが表示される場合がありますが、これは正常です。この実験(Lab)で重要なのは、タイプが wifi のデバイスであり、ここでは wlan0 と仮定します。

DEVICE         TYPE      STATE         CONNECTION
wlan0          wifi      disconnected  --
p2p-dev-wlan0  wifi-p2p  disconnected  --
docker0        bridge    unmanaged     --
eth0           ethernet  unmanaged     --
lo             loopback  unmanaged     --

次に、nmcli device wifi list コマンドを使用してスキャンを実行します。このコマンドは、NetworkManager に近くのワイヤレスネットワークを検索させ、それらをリスト形式で表示するように指示します。

ターミナルでコマンドを実行します。

nmcli device wifi list

物理的な Wi-Fi カードを持つ実環境では、周囲のネットワークの一覧が表示されます。私たちのシミュレートされた環境では、実際の Wi-Fi ネットワークが存在しないため、出力は空になります。以下は、ネットワークが検出された場合に表示される出力の例です。ネットワークの SSID(名前)、信号強度、セキュリティタイプ、その他の詳細が表示されます。

IN-USE  SSID                MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        MyHomeWiFi          Infra  6     130 Mbit/s  80      ▂▄▆█  WPA2
        AnotherNetwork      Infra  11    54 Mbit/s   55      ▂▄▆_  WPA2
        Public-Hotspot      Infra  1     54 Mbit/s   30      ▂▄__  --

このコマンドは、接続可能なネットワークを発見するために不可欠です。

Wi-Fi 接続の作成とアクティベートの試行

このステップでは、ワイヤレスネットワークに接続する方法を学びます。標準的なコマンドは nmcli device wifi connect です。しかし、接続すべき実際のネットワークがないシミュレートされた環境にいるため、このコマンドは失敗します。

代わりに、同様に重要な代替手段、すなわち NetworkManager の接続プロファイルの作成とアクティベートを行います。このアプローチは、ネットワーク接続を事前に設定する際に非常に役立ちます。ここでは、MyLabWiFi という名前の仮想ネットワーク用のプロファイルを作成します。前のステップで見つけた Wi-Fi デバイス名(おそらく wlan0)を使用することを忘れないでください。

まず、新しい接続プロファイルを作成します。このコマンドは、接続に必要なすべての設定を定義します。

sudo nmcli connection add type wifi con-name MyLabConnection ifname wlan0 ssid MyLabWiFi

確認メッセージが表示されます。

Connection 'MyLabConnection' (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) successfully added.

プロファイルが作成されたので、それをアクティベート(起動)してみることができます。これはネットワークへの接続と同等の操作です。

sudo nmcli connection up MyLabConnection

このコマンドは MyLabWiFi ネットワークへの接続を試みます。このネットワークはシミュレートされた環境には実際には存在しないため、接続を確立することはできません。コマンドはハングアップするか、接続を試み続けるように見えます。これは想定される動作です。数秒待った後、Ctrl+C を押してコマンドを停止してください。

これで、接続プロファイルの作成方法と、それを起動(up)しようとする方法を学びました。利用可能な Wi-Fi ネットワークがある実環境では、このコマンドで正常に接続が確立されます。

nmcli connection show コマンドを使用した接続の検証

このステップでは、ネットワークの状態を確認し、設定済みの接続プロファイルを表示する方法を学びます。接続を試みた後、ステータスを確認するのは良い習慣です。

nmcli connection show コマンドは、システムに保存されているすべての接続プロファイルを、現在アクティブであるかどうかにかかわらず一覧表示します。

すべてのプロファイルを表示するためにコマンドを実行します。

nmcli connection show

出力には、前のステップで作成した MyLabConnection プロファイルが、その UUID およびタイプとともに含まれているはずです。接続がアクティブではないため、DEVICE 列は空になります。

NAME             UUID                                  TYPE      DEVICE
MyLabConnection  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  wifi      --

現在アクティブな接続のみを表示するには、--active フラグを追加できます。これは、現在のネットワークステータスを素早く確認するのに非常に役立ちます。

nmcli connection show --active

前のステップでの接続試行が成功しなかったため、このコマンドは何も出力しません。これは、アクティブな接続がないことを確認します。

このコマンドは、ネットワーク接続の状態を素早く検査するための頼りになるツールです。

接続プロファイルの削除

このステップでは、不要になった接続プロファイルを削除する方法を学びます。これは一般的なクリーンアップ作業です。接続をアクティベートできなかったため、切断することはできません。代わりに、作成したプロファイルを削除します。

MyLabConnection プロファイルを削除するには、nmcli connection delete コマンドの後に接続名を使用します。

次のコマンドを実行します。

sudo nmcli connection delete MyLabConnection

接続が正常に削除されたことの確認が表示されます。

Connection 'MyLabConnection' successfully deleted.

確認のために、再度 nmcli connection show を実行できます。MyLabConnection がリストに表示されなくなっていることが確認できます。

nmcli connection show

このコマンドは、プロファイルが削除されたことを確認するために、何も出力しないか(または以前から存在していた他の接続のみを表示する)はずです。

接続依存コマンドの理解

最終ステップであるこのステップでは、speedtest-cli のようなアクティブなネットワーク接続に依存するコマンドについて説明します。これまでのステップで、このシミュレーション環境ではアクティブな Wi-Fi 接続を確立できないことが確認できました。

接続がない場合に何が起こるかを確認するために、speedtest-cli を実行してみましょう。このツールは、実験(Lab)のセットアップ中にインストールされています。

ターミナルで次のコマンドを実行します。

speedtest-cli

このツールはスピードテストサーバーへの接続を試みますが、失敗します。設定またはネットワークの問題を示すエラーメッセージが表示されます。これは、シミュレートされた wlan0 デバイスがインターネットに接続されていないため、予想される動作です。

ネットワークに正常に接続されている実際のシナリオでは、このツールは自動的に最適なサーバーを見つけ、ダウンロード速度とアップロード速度をテストし、結果を出力します。出力は次のようなものになります(値は変動します)。

Retrieving speedtest.net configuration...
Testing from ...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by ... [x.xx ms]: ...
Testing download speed...
Download: 95.32 Mbit/s
Testing upload speed...
Upload: 88.14 Mbit/s

このステップは、インターネットアクセスを必要とするツールを使用する前に、接続ステータスを確認することの重要性を示しています。

まとめ

この実験(Lab)の完了、おめでとうございます!nmcli を使用して Linux システム上のワイヤレス接続を管理するための基本的なコマンドを学習しました。

この実験では、シミュレーション環境内でワイヤレスネットワーク管理のワークフロー全体を実践しました。

  • nmcli device wifi list を使用したネットワークのスキャン
  • nmcli connection add および nmcli connection up を使用した接続プロファイルの作成とアクティベートの試行
  • nmcli connection show を使用した接続ステータスの検証
  • nmcli connection delete を使用した接続プロファイルの削除
  • speedtest-cli のような接続依存ツールの要件の理解

これらのスキルは、特にコマンドラインに依存する環境において、Linux サーバーやデスクトップを管理するための基礎となります。これで、さまざまな状況でネットワーク構成を処理するための準備が整いました。