無線LANインターフェースがカーネルまたはモジュールでサポートされていれば、アクセスポイントとIPアドレスを設定する程度で接続できます。「iwconfig」は、アクセスポイントへの接続に必要なESSIDおよび暗号化キーを登録するときに利用するコマンドです。
本連載では、ネットワーク管理の基本コマンドを順を追って紹介していきます。基本書式と用法、主要なオプション、用例サンプルを示しますので、manやhelp代わりに通読し、各コマンドでできることを順次おさらいしてみてください。今回はLinux端末の無線LANインターフェースを設定する「iwconfig」コマンドを紹介します。
なお、本連載では、執筆時点の最新版「Red Hat Enterprise Linux」(RHEL)および「CentOS」環境で動作を確認しています。コマンドのサンプルなどで一部環境に依存した出力例となる場合がありますので、その際には適宜ご自身の環境に合わせて読み替えてください。
「iwconfig」コマンドは、「Wireless tools for Linux」(wireless-tools)に収録されている無線LANインターフェース設定用コマンドです。接続するアクセスポイントのESSIDを指定するときや、稼働中の無線LANインターフェースについて調べたいときなどに利用します。
なお、本連載のターゲットにしている「CentOS 7」標準のリポジトリにはwireless-toolsが収録されていません。yumを使って手動インストールする場合は外部リポジトリを利用します。下のインストール例では、EPELのリポジトリを利用しています。
$ sudo yum -y install epel-release $ sudo yum install wireless-tools
RHEL、CentOSなど多くのLinuxディストリビューションでは、「/sbin」または「/usr/sbin」ディレクトリにコマンドがインストールされるため、一般ユーザーが実行する場合には、「/usr/sbin/iwconfig」のようにフルパスを指定しなければならないことがあります。
また、接続する無線LANアクセスポイントの設定を登録するなどシステム設定の変更を伴う場合には、rootで作業を行うか「sudo」コマンドを組み合わせ、管理者権限で実行する必要があります。
なお、iwconfigコマンドでESSIDおよび暗号化キーを登録することはできますが、これは一時的なもので、システムを再起動すると情報は失われます。恒常的に無線LANを利用する場合は、無線LANインターフェースの設定ファイル(CentOSの場合「/etc/sysconfig/network-scripts/ifcfg-wlan0」など)に設定を記述する必要があります。ただし、CentOS 7以降では「NetworkManager」を利用したネットワーク管理が前提になっています。直接設定ファイルを編集することは推奨されていません。
iwconfigコマンドの主なパラメーターは次の通りです。
パラメーター | 意味 |
---|---|
essid |
ESSIDを指定する |
nwid |
ネットワークIDを指定する |
nickname |
ニックネームを指定する |
mode |
モード(Managed/Ad-Hoc)を指定する |
channel |
使用するチャンネル数を指定する |
freq |
周波数帯域を指定する |
ap |
アクセスポイントを48ビットの数値(BSSID)で指定する |
rate |
通信速度を数値で指定する(「5.5M」など) |
現在有効な無線LANインターフェースの状態を確認する場合は、引数/パラメーターを指定せずにiwconfigコマンドを実行します(一般ユーザーの権限で実行可)。
通常、Linuxでは無線LANインターフェースは「wlan○」(○は数値)というデバイス名で存在するため、「wlan0」などと引数を与えれば、無線LANの情報だけを表示できます。
この実行結果で「Access Point:」に48ビットの数値(BSSID/Basic Service Set Identifier、基本サービスセット識別子)が表示されていれば、ESSIDとして表示されている無線LANアクセスポイントに接続していると判定できます。
無線LANに関わる基本情報は「無線LAN構築のABC」「Linuxで無線LANを使うには」などをご覧ください。
下の実行例では、引数なしでiwconfigコマンドを実行しています。「wlan0」の無線LANインターフェースがESSID「Atmark」に接続していることが分かります。
# iwconfig wlan0 IEEE 802.11bgn ESSID:"Atmark" Nickname:"<WIFI@ANYWHERE>" Mode:Managed Frequency:2.422 GHz Access Point: 12:36:42:6A:B6:1E Bit Rate:72.2 Mb/s Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:****-****-****-****-****-****-****-**** Security mode:open Power Management:off Link Quality=95/100 Signal level=46/100 Noise level=0/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 lo no wireless extensions. eth0 no wireless extensions.
周辺に存在する無線LANアクセスポイントに接続する場合は、無線LANインターフェース名(通常は「wlan0」)に加え、essidパラメーターに接続先のESSIDを、keyパラメーターにアクセスポイントの暗号化キーを指定します。暗号化キーは先頭に「s:」を付ける必要があるため、暗号化キーが「password」とすると、「s:password」になります。
先ほども述べましたが、iwconfigコマンドで行った設定は永続しません。恒常的にアクセスポイントを利用する場合は、「/etc/sysconfig/network-scripts/ifcfg-wlan0」などの設定ファイルに情報を記述する必要があります。CentOS 7からはNetworkManagerの利用がデフォルトとなり、直接「/etc/sysconfig/network-scripts」以下のファイルを編集することは推奨されないため、「nmcli」コマンドを利用し無線LANインターフェースの設定を行います。
下記は、wlan0の無線LANインターフェースから、ESSID「Atmark2」に接続する場合の実行例です。
# iwconfig wlan0 essid "Atmark2" key "s:password"
無線LANインターフェースを持つデバイス同士が、ルーター/アクセスポイントを介さず直接通信する場合(アドホックモード)には、パラメーター「mode」に引数「Ad-Hoc」を与えます。ルーター/アクセスポイントを経由する場合(インフラストラクチャモード)には、引数は「Managed」となります。
下記は、wlan0をアドホックモードで利用する場合の実行例です。
# iwconfig wlan0 mode Ad-Hoc
Copyright © ITmedia, Inc. All Rights Reserved.