「Iwd」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎EAP-PEAP: Hashの生成コマンドを更新)
 
(4人の利用者による、間の40版が非表示)
3行目: 3行目:
 
[[Category:ネットワーク設定]]
 
[[Category:ネットワーク設定]]
 
[[en:Iwd]]
 
[[en:Iwd]]
  +
[[pt:Iwd]]
  +
[[ru:Iwd]]
  +
[[zh-hans:Iwd]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|ネットワーク設定}}
 
{{Related|ネットワーク設定}}
{{Related|ワイヤレス設定}}
+
{{Related|ワイヤレスネットワーク設定}}
{{Related|WPA supplicant}}
+
{{Related|wpa_supplicant}}
 
{{Related articles end}}
 
{{Related articles end}}
[https://iwd.wiki.kernel.org/ IWD] (iNet wireless daemon) は Intel によって書かれた Linux 用の無線デーモンです。プロジェクトの中心的な目標は、外部ライブラリに依存せず、Linux カーネルが提供する機能を最大限に活用することにより、リソース使用率を最適化することです。
+
[https://iwd.wiki.kernel.org/ iwd] (iNet wireless daemon) は Intel によって書かれた Linux 用の無線デーモンです。プロジェクトの中心的な目標は、外部ライブラリに依存せず、Linux カーネルが提供する機能を最大限に活用することにより、リソース使用率を最適化することです。
   
 
iwd はスタンドアロンでも動作しますが [[ConnMan]]、[[systemd-networkd]] や [[NetworkManager]] のような包括的なネットワークマネージャーとの組み合わせて使うこともできます。
 
iwd はスタンドアロンでも動作しますが [[ConnMan]]、[[systemd-networkd]] や [[NetworkManager]] のような包括的なネットワークマネージャーとの組み合わせて使うこともできます。
  +
  +
{{Note|[[ネットワークマネージャ]] 経由で iwd を使用する場合は、そのネットワークマネージャの記事に明示的に記載されていない限り、このページの指示には従わないでください。}}
   
 
== インストール ==
 
== インストール ==
20行目: 25行目:
 
{{Pkg|iwd}} パッケージにはクライアントプログラムの {{ic|iwctl}} とデーモンの {{ic|iwd}}、そして Wi-Fi 監視ツールの {{ic|iwmon}} が含まれています。
 
{{Pkg|iwd}} パッケージにはクライアントプログラムの {{ic|iwctl}} とデーモンの {{ic|iwd}}、そして Wi-Fi 監視ツールの {{ic|iwmon}} が含まれています。
   
iwd デーモンを実行したら ({{ic|iwd.service}} を[[起動]]・[[有効化]])、{{ic|iwctl}} コマンドを使って制御することができます。
+
{{ic|iwd.service}} を[[起動]]・[[有効化]])したら、{{ic|iwctl}} コマンドを使って制御することができます。
  +
 
=== iwctl ===
 
=== iwctl ===
   
32行目: 38行目:
 
* {{ic|iwctl}} プロンプトで、{{ic|Tab}} キーを押すとコマンドとデバイス名を補完できます。
 
* {{ic|iwctl}} プロンプトで、{{ic|Tab}} キーを押すとコマンドとデバイス名を補完できます。
 
* 対話型プロンプトを終了するには、{{ic|Ctrl+d}} を押して、 [[Wikipedia:EOF character|EOF]] を送信します。
 
* 対話型プロンプトを終了するには、{{ic|Ctrl+d}} を押して、 [[Wikipedia:EOF character|EOF]] を送信します。
* 対話型プロンプトを使用せずに、すべてのコマンドをコマンドライン引数として使用できます。例{{ic|iwctl device wlan0 show}}}}
+
* 対話型プロンプトを使用せずに、すべてのコマンドをコマンドライン引数として使用できます。例:{{ic|iwctl device wlan0 show}}}}
   
 
使用可能なすべてのコマンドの一覧を表示するには:
 
使用可能なすべてのコマンドの一覧を表示するには:
107行目: 113行目:
   
 
[iwd]# known-networks ''SSID'' forget
 
[iwd]# known-networks ''SSID'' forget
  +
  +
=== iwgtk ===
  +
  +
{{Aur|iwgtk}} は、iwd を制御できる GUI フロントエンドを提供します。
  +
  +
引数を指定せずに {{ic|iwgtk}} を実行すると、アプリケーションウィンドウが起動します。このウィンドウを使用して、アダプターとデバイスのオン/オフの切り替え、動作モードの変更、利用可能なネットワークの表示、利用可能なネットワークへの接続、既知のネットワークの管理を行うことができます。
  +
  +
==== インジケーターアイコン ====
  +
  +
iwgtk のインジケーター (トレイ) アイコンデーモンを起動するには、次のコマンドを実行します:
  +
  +
$ iwgtk -i
  +
  +
インジケーターアイコンが表示されない場合は、システムトレイで StatusNotifierItem API がサポートされていない可能性が高く、その場合は、{{Aur|snixembed-git}} などの互換性レイヤーを実行する必要があります。
  +
  +
次のシステムトレイは StatusNotifierItem をサポートしているため、そのまま使用できます:
  +
  +
* KDE Plasma
  +
* swaybar
  +
* xfce4-panel
  +
  +
次のトレイは XEmbed のみをサポートしているため、{{Aur|snixembed-git}} が必要です:
  +
  +
* AwesomeWM
  +
* i3bar
  +
  +
==== 自動起動 ====
  +
  +
iwgtk の最も一般的な使用例は、デスクトップにログインするたびにインジケーターデーモンを起動することです。デスクトップ環境が [[XDG Autostart]] 標準をサポートしている場合、AUR パッケージによって {{ic|/etc/xdg/autostart/}} に配置されている {{ic|iwgtk-indicator.desktop}} ファイルにより自動的に行われます。
  +
  +
あるいは、インジケーターデーモンを起動するための systemd ユニットファイルが AUR パッケージによって提供されます。デスクトップ環境が systemd の {{ic|graphical-session.target}} ユニットをサポートしている場合、{{ic|iwgtk.service}} [[ユーザーユニット]] を [[有効化]] することで、systemd 経由で iwgtk を自動起動できます。
   
 
== ネットワーク設定 ==
 
== ネットワーク設定 ==
150行目: 187行目:
   
 
[Settings]
 
[Settings]
AutoConnect=True
+
AutoConnect=true
 
}}
 
}}
   
アクセスポイントに自動接続したくない場合、Autoconnect オプションを False に設定して {{ic|iwctl}} で手動でアクセスポイントに接続してください。パスワードを平文で保存したくない場合は、ファイルからパスワードの設定を外してください。
+
アクセスポイントに自動接続したくない場合、AutoConnect オプションを false に設定して {{ic|iwctl}} で手動でアクセスポイントに接続してください。パスワードを平文で保存したくない場合は、ファイルからパスワードの設定を外してください。
   
 
==== EAP-PEAP ====
 
==== EAP-PEAP ====
   
EAP-PWD と同様に、フォルダー内に {{ic|''essid''.8021x}} を作成する必要があります。設定ファイルの作成にむ前に、組織が使用している CA 証明証を確認する良い機会でもあります。MSCHAPv2 を機能させるには、{{Pkg|ppp}} もインストールする必要があります。詳細については、[[Network_configuration/Wireless#MS-CHAPv2|MS-CHAPv2]] を参照してください。これは MSCHAPv2 パスワード認証を使用する設定ファイルの例です:
+
EAP-PWD と同様に、フォルダー内に {{ic|''essid''.8021x}} を作成する必要があります。設定ファイルの作成にむ前に、組織が使用している CA 証明証を確認する良い機会でもあります。これは MSCHAPv2 パスワード認証を使用する設定ファイルの例です:
   
 
{{hc|/var/lib/iwd/''essid''.8021x|2=
 
{{hc|/var/lib/iwd/''essid''.8021x|2=
172行目: 209行目:
 
AutoConnect=true
 
AutoConnect=true
 
}}
 
}}
  +
  +
MsCHAPv2 パスワードは、暗号化されたハッシュとして保存することもできます。正しい md4 ハッシュは次のように計算できます: (パスワードの後に EOF を挿入し、Enter キーを押さないでください)
  +
  +
$ iconv -t utf16le | openssl md4 -provider legacy
  +
  +
結果のハッシュは、{{ic|EAP-PEAP-Phase2-Password-Hash}} キー内に保存する必要があります。
   
 
{{Tip|''eduroam'' の使用を計画している場合は、[[#Eduroam]] も参照してください。}}
 
{{Tip|''eduroam'' の使用を計画している場合は、[[#Eduroam]] も参照してください。}}
177行目: 220行目:
 
==== TTLS-PAP ====
 
==== TTLS-PAP ====
   
  +
EAP-PWD と同様に、フォルダー中に {{ic|''essid''.8021x}} を作成する必要があります。設定ファイルの作成に進む前に、組織が使用している CA 証明書を確認する良い機会でもあります。これは、PAP パスワード認証を使用する設定ファイルの例です:
Like EAP-PWD, you also need to create a {{ic|''essid''.8021x}} in the folder. Before you proceed to write the configuration file, this is also a good time to find out which CA certificate your organization uses. This is an example configuration file that uses PAP password authentication:
 
   
 
{{hc|/var/lib/iwd/''essid''.8021x|2=
 
{{hc|/var/lib/iwd/''essid''.8021x|2=
195行目: 238行目:
 
==== Eduroam ====
 
==== Eduroam ====
   
  +
Eduroam は [https://cat.eduroam.org/ 設定アシスタントツール(CAT)] を提供していますが、残念ながら iwd には対応していません。しかし、ダウンロードボタンをクリックし、大学を選択してダウンロードできるインストーラは単なる Python スクリプトです。証明書やサーバのドメインマスクなど、必要な設定オプションを簡単に抽出することができます。
Eduroam offers a [https://cat.eduroam.org/ configuration assistant tool (CAT)], which unfortunately does not support iwd. However, the installer, which you can download by clicking on the download button then selecting your university, is just a Python script. It is easy to extract the necessary configuration options, including the certificate and server domain mask.
 
   
  +
以下の表は、iwd の設定オプションと eduroam CAT のインストールスクリプトの変数の対応を示します。
The following table contains a mapping of iwd configuration options to eduroam CAT install script variables.
 
   
 
{| class="wikitable
 
{| class="wikitable
! Iwd Configuration Option !! CAT Script Variable
+
! Iwd 設定オプション !! CAT スクリプト変数
 
|-
 
|-
| file name || one of {{ic|Config.ssids}}
+
| file name || {{ic|Config.ssids}} の一つ
 
|-
 
|-
 
| {{ic|EAP-Method}} || {{ic|Config.eap_outer}}
 
| {{ic|EAP-Method}} || {{ic|Config.eap_outer}}
210行目: 253行目:
 
| {{ic|EAP-PEAP-CACert}} || {{ic|Config.CA}}
 
| {{ic|EAP-PEAP-CACert}} || {{ic|Config.CA}}
 
|-
 
|-
| {{ic|EAP-PEAP-ServerDomainMask}} || one of {{ic|Config.servers}}
+
| {{ic|EAP-PEAP-ServerDomainMask}} || {{ic|Config.servers}} の一つ
 
|-
 
|-
 
| {{ic|EAP-PEAP-Phase2-Method}} || {{ic|Config.eap_inner}}
 
| {{ic|EAP-PEAP-Phase2-Method}} || {{ic|Config.eap_inner}}
 
|-
 
|-
| {{ic|EAP-PEAP-Phase2-Identity}} || username@{{ic|Config.user_realm}}
+
| {{ic|EAP-PEAP-Phase2-Identity}} || ユーザー名@{{ic|Config.user_realm}}
 
|}
 
|}
   
 
{{Note|
 
{{Note|
  +
* {{ic|EAP-Identity}} は Eduroam プロバイダによって要求されていない場合があります。その場合は、このフィールドに {{ic|anonymous@Config.user_realm}} を使用する必要があります。
* {{ic|EAP-Identity}} may not be required by your Eduroam provider, in which case you can use {{ic|anonymous}} in this field.
 
* If your {{ic|EAP-PEAP-ServerDomainMask}} starts with {{ic|DNS:}}, use only the part after {{ic|DNS:}}.
+
* {{ic|EAP-PEAP-ServerDomainMask}} {{ic|DNS:}} で始まる場合は、{{ic|DNS:}} 以降の部分のみを使用してください。
 
}}
 
}}
   
==== Other cases ====
+
==== その他のケース ====
   
More example tests can be [https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/autotests found in the test cases] of the upstream repository.
+
その他のテスト例は、上流リポジトリの [https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/autotests テストケース]にあります。
   
 
== 任意設定 ==
 
== 任意設定 ==
   
 
メインの設定は {{ic|/etc/iwd/main.conf}} ファイルで行います。
 
メインの設定は {{ic|/etc/iwd/main.conf}} ファイルで行います。
  +
{{man|5|iwd.config}} を参照してください。
   
  +
=== 特定のネットワークに対する自動接続を無効化 ===
ネットワーク (SSID) の設定は {{ic|/var/lib/iwd}} ディレクトリを使用します。
 
 
=== 特定のネットワークで自動接続を無効化 ===
 
   
 
{{ic|/var/lib/iwd/''network''.''type''}} ファイルを作成・編集してください (''network'' はネットワークの SSID に、''type'' は "open", "wep", "psk", "8021x" のどれかのネットワークタイプに置き換えてください)。そしてファイルに以下のセクションを追加してください:
 
{{ic|/var/lib/iwd/''network''.''type''}} ファイルを作成・編集してください (''network'' はネットワークの SSID に、''type'' は "open", "wep", "psk", "8021x" のどれかのネットワークタイプに置き換えてください)。そしてファイルに以下のセクションを追加してください:
238行目: 280行目:
 
{{hc|/var/lib/iwd/spaceship.psk|2=<nowiki>
 
{{hc|/var/lib/iwd/spaceship.psk|2=<nowiki>
 
[Settings]
 
[Settings]
Autoconnect=false
+
AutoConnect=false
 
</nowiki>}}
 
</nowiki>}}
   
293行目: 335行目:
 
==== DNS マネージャーの選択 ====
 
==== DNS マネージャーの選択 ====
   
現在、iwd は [[systemd-resolved]] と [[resolvconf]] の二つの DNS マネージャーをサポートしています。
+
現在、iwd は [[systemd-resolved]] と [[Openresolv|resolvconf]] の二つの DNS マネージャーをサポートしています。
   
 
{{ic|systemd-resolved}} の場合、次のセクションを {{ic|/etc/iwd/main.conf}} に追加します:
 
{{ic|systemd-resolved}} の場合、次のセクションを {{ic|/etc/iwd/main.conf}} に追加します:
309行目: 351行目:
 
}}
 
}}
   
=== コンソール (ローカル) ユーザーが設定変えられないようにする ===
+
=== すべてのユーザーにステータス情報の読み取り許可する ===
   
  +
すべてのユーザーにステータス情報の読み取りを許可するが、設定の変更は許可しない場合は、次の [[D-Bus]] 設定ファイルを作成できます。
デフォルトでは {{ic|iwd}} の D-Bus インターフェイスは (たとえユーザーが "root" でなくても) 誰でも {{ic|iwd}} デーモンに接続して設定を変更できるようになっています。
 
   
  +
{{hc|/etc/dbus-1/system.d/iwd-allow-read.conf|<nowiki>
コンソールユーザーが設定を編集できないようにしたい場合、以下のように D-Bus 設定ファイルを作成してください:
 
  +
<!-- Allow any user to read iwd status information. Overrides some part
 
{{hc|/etc/dbus-1/system.d/iwd-strict.conf|2=<nowiki>
+
of /usr/share/dbus-1/system.d/iwd-dbus.conf. -->
<!-- prevent local users from changing iwd settings, but allow
 
reading status information. overrides some part of
 
/usr/share/dbus-1/system.d/iwd-dbus.conf. -->
 
 
<!-- This configuration file specifies the required security policies
 
for iNet Wireless Daemon to work. -->
 
   
 
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
327行目: 363行目:
 
<busconfig>
 
<busconfig>
   
<policy at_console="true">
+
<policy context="default">
 
<deny send_destination="net.connman.iwd"/>
 
<deny send_destination="net.connman.iwd"/>
 
<allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="GetAll" />
 
<allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="GetAll" />
339行目: 375行目:
 
</nowiki>}}
 
</nowiki>}}
   
  +
=== 暗号化されたネットワークプロファイル ===
{{Tip|''<allow>'' 行を削除するとネットワークの状態を読み出すこともできなくなります。}}
 
   
  +
デフォルトでは、iwd はネットワーク資格情報を暗号化せずにシステムに保存します。iwd バージョン 1.25 以降、iwd は、systemd を使用するシステム向けに [https://iwd.wiki.kernel.org/profile_encryption 暗号化プロファイル] を作成するための実験的なサポートを提供します。
== Troubleshooting ==
 
   
  +
まず、暗号化された認証情報を作成します。次の例では、[[systemd-creds]] を使用し、暗号化されたプロファイルの作成に使用されるシステムの [[Trusted Platform Module]] にバインドされる ''iwd-secret'' という暗号化された資格情報を作成します:
=== Verbose TLS debugging ===
 
   
  +
# systemd-ask-password -n | systemd-creds --tpm2-device=auto -T --name=iwd-secret encrypt - /etc/credstore.encrypted/iwd-secret.cred
This can be useful, if you have trouble setting up MSCHAPv2 or TTLS. You can set the following [[environment variable]] via a [[drop-in snippet]]:
 
   
  +
次に、iwd サービスの [[ドロップインファイル]] を作成して、{{ic|LoadEncryptedCredential}} オプションを追加します。
  +
  +
{{hc|/etc/systemd/system/iwd.service.d/use-creds.conf|2=
  +
[Service]
  +
LoadEncryptedCredential=iwd-secret:/etc/credstore.encrypted/iwd-secret.cred
  +
}}
  +
  +
最後に、名前付き資格情報を値として持つ {{ic|SystemdEncrypt}} オプションを iwd 設定ファイルに追加し、systemd マネージャーを [[daemon-reload|リロード]] して、iwd サービスを [[再起動]] します。
  +
  +
{{hc|/etc/iwd/main.conf|2=
  +
[General]
  +
...
  +
SystemdEncrypt=iwd-secret
  +
}}
  +
  +
{{Note|
  +
* 現在システム上にあるプロファイルはすべて自動的に暗号化されます。この時点では他に何も必要ありません。今後のプロファイルは自動的に暗号化されます。
  +
* 上の例では、暗号化された資格情報は TPM PCR 7 に暗黙的にバインドされています。したがって、セキュアブートの状態が変化すると、そのブートセッションではネットワークに接続できなくなります。
  +
}}
  +
  +
== トラブルシューティング ==
  +
  +
=== 詳細な TLS デバッグ ===
  +
  +
これは、MSCHAPv2 または TTLS の設定に問題がある場合に役立ちます。
  +
[[ドロップインスニペット]] を使用して、次の[[環境変数]]を設定できます。
 
{{hc|/etc/systemd/system/iwd.service.d/tls-debug.conf|2=
 
{{hc|/etc/systemd/system/iwd.service.d/tls-debug.conf|2=
 
[Service]
 
[Service]
352行目: 414行目:
 
}}
 
}}
   
  +
その後、root で {{ic|journalctbl -u iwd.service}} を実行して、iwd ログを確認します。
Check the iwd logs afterwards via {{ic|journalctl -u iwd.service}}
 
   
=== Connect issues after reboot ===
+
=== 起動後の iwd.service の再起動 ===
   
  +
一部のマシンでは、起動後に動作するために {{ic|iwd.service}} を再起動する必要があると報告されています。{{Bug|63912}} と [https://bbs.archlinux.org/viewtopic.php?id=251432 thread 251432] を参照してください。これはおそらく、Linux カーネルとサービスの起動が早すぎて、ワイヤレスネットワークカードの電源がオンになる前に、''iwd'' が起動するために発生します。回避策として、[[ユニットを拡張]]して、遅延時間を追加します。
A low entropy pool can cause connection problems in particular noticeable after reboot. See [[Random number generation]] for suggestions to increase the entropy pool.
 
   
  +
[Service]
=== Wireless device is not renamed by udev ===
 
  +
ExecStartPre=/usr/bin/sleep 2
   
  +
次に ''systemd'' マネージャーの設定を[[リロード]]します。
Since version 1.0, iwd disables predictable renaming of wireless device. It installs the following systemd network link configuration file which prevents udev from renaming the interface to {{ic|wlp#s#}}:
 
  +
  +
=== 再起動後の接続の問題 ===
  +
  +
エントロピープールが低いと、特に再起動後に顕著な接続の問題が発生する可能性があります。エントロピープールを増やすための提案については、[[乱数生成]] を参照してください。
  +
  +
=== ワイヤレスデバイスが udev によって名前が変更されない ===
  +
  +
バージョン 1.0 以降、iwd は無線デバイスの予測可能な名前変更を無効にします。これは以下の systemd ネットワークリンク設定ファイルをインストールすることで、 udev がインターフェースの名前を {{ic|wlp#s#}} に変更するのを防ぎます。
   
 
{{hc|1=/usr/lib/systemd/network/80-iwd.link|2=
 
{{hc|1=/usr/lib/systemd/network/80-iwd.link|2=
370行目: 441行目:
 
}}
 
}}
   
As a result the wireless link name {{ic|wlan#}} is kept after boot. This resolved a race condition between ''iwd'' and [[udev]] on interface renaming as explained in [https://iwd.wiki.kernel.org/interface_lifecycle#udev_interface_renaming iwd udev interface renaming].
+
その結果、ワイヤレスリンク名 {{ic|wlan#}} は起動後も保持されます。これにより、[https://iwd.wiki.kernel.org/interface_lifecycle#udev_interface_renaming iwd udev インターフェイス名前変更]で説明されているように、インターフェイスの名前変更に関する ''iwd'' と [[udev]] 間の競合状態を解決しました。
   
  +
もし、これが問題になるなら、次のコマンドでマスクしてみてください。
If this results in issues try masking it with:
 
   
 
# ln -s /dev/null /etc/systemd/network/80-iwd.link
 
# ln -s /dev/null /etc/systemd/network/80-iwd.link
  +
  +
=== AP モードで DHCP が使えない ===
  +
  +
AP モードで ''iwd'' に接続する場合、クライアントは DHCP で IP アドレスを受け取れない場合があります。そのため、管理対象のインターフェイス上で、 ''iwd'' によるネットワーク設定を有効にする必要があります。
  +
  +
{{hc|1=/etc/iwd/main.conf|2=
  +
[General]
  +
EnableNetworkConfiguration=True
  +
}}
  +
  +
上記のファイルが存在しない場合は、作成する必要があります。
  +
  +
=== iwd のクラッシュにより WiFi が切断され続ける ===
  +
  +
[[systemd/ジャーナル|ジャーナル]] で {{ic|iwd.service}} のクラッシュ ([https://bbs.archlinux.org/viewtopic.php?id=273965]) を報告しています。
  +
  +
中心的な問題は、ネットワーク接続を管理するために複数の競合するサービスがあることです。この問題を解決するには、それらを同時に [[有効]] にしていないことを確認してください。
  +
  +
=== Error loading client private key ===
  +
  +
キーファイルをロードするには、''iwd'' には {{ic|pkcs8_key_parser}} [[カーネルモジュール]] が必要です。起動時に {{ic|/usr/lib/modules-load.d/pkcs8.conf}} を使用して {{man|8|systemd-modules-load.service}} によってロードされますが、{{Pkg|iwd}} がインストールされたばかりの場合は当てはまりません。
  +
  +
WPA エンタープライズネットワークに接続しようとしたときに、{{ic|Error loading client private key /path/to/key}} などのメッセージが [[systemd/ジャーナル|ジャーナル]] に表示される場合は、モジュールを手動でロードします:
  +
  +
# modprobe pkcs8_key_parser
  +
  +
=== iwd がローミングを続ける ===
  +
  +
接続が悪すぎる場合、iwd は他の既知の AP にローミングします。
  +
  +
これはシステムログに {{ic|1=wlan0: deauthenticating from xx:xx:xx:xx:xx:xx by local Choice (Reason: 3=DEAUTH_LEAVING)}} として表示されます。
  +
  +
接続信号の強度を確認するには、
  +
  +
iwctl station wlan0 show | grep RSSI
  +
  +
しきい値を大きくして、接続を悪化させることができます。デフォルトの RoamThreshold は -70、RoamThreshold5G は -76 です。
  +
  +
{{hc|/etc/iwd/main.conf|2=
  +
[General]
  +
RoamThreshold=-75
  +
RoamThreshold5G=-80}}
   
 
== 参照 ==
 
== 参照 ==
384行目: 497行目:
 
* [https://www.youtube.com/watch?v=F2Q86cphKDo 2017 Update on new WiFi daemon for Linux by Marcel Holtmann - YouTube]
 
* [https://www.youtube.com/watch?v=F2Q86cphKDo 2017 Update on new WiFi daemon for Linux by Marcel Holtmann - YouTube]
 
* [https://www.youtube.com/watch?v=QIqT2obSPDk The New Wi-Fi Experience for Linux - Marcel Holtmann, Intel - YouTube]
 
* [https://www.youtube.com/watch?v=QIqT2obSPDk The New Wi-Fi Experience for Linux - Marcel Holtmann, Intel - YouTube]
  +
* [https://iwd.wiki.kernel.org/ap_mode How to set up a simple access point with iwd]
  +
  +
{{TranslationStatus|iwd|2023-12-07|699496}}

2024年4月4日 (木) 11:11時点における最新版

関連記事

iwd (iNet wireless daemon) は Intel によって書かれた Linux 用の無線デーモンです。プロジェクトの中心的な目標は、外部ライブラリに依存せず、Linux カーネルが提供する機能を最大限に活用することにより、リソース使用率を最適化することです。

iwd はスタンドアロンでも動作しますが ConnMansystemd-networkdNetworkManager のような包括的なネットワークマネージャーとの組み合わせて使うこともできます。

ノート: ネットワークマネージャ 経由で iwd を使用する場合は、そのネットワークマネージャの記事に明示的に記載されていない限り、このページの指示には従わないでください。

インストール

iwd パッケージをインストールしてください。

使用方法

iwd パッケージにはクライアントプログラムの iwctl とデーモンの iwd、そして Wi-Fi 監視ツールの iwmon が含まれています。

iwd.service起動有効化)したら、iwctl コマンドを使って制御することができます。

iwctl

対話型プロンプトを表示するには、次のようにします:

$ iwctl

対話型プロンプトは、プレフィックスが、[iwd]# と表示されます。

ヒント:
  • iwctl プロンプトで、Tab キーを押すとコマンドとデバイス名を補完できます。
  • 対話型プロンプトを終了するには、Ctrl+d を押して、 EOF を送信します。
  • 対話型プロンプトを使用せずに、すべてのコマンドをコマンドライン引数として使用できます。例:iwctl device wlan0 show

使用可能なすべてのコマンドの一覧を表示するには:

[iwd]# help

ネットワークに接続する

先ず、ワイヤレスデバイス名がわからない場合は、すべての Wi-Fiデバイスを一覧表示します:

[iwd]# device list

次に、ネットワークをスキャンします:

[iwd]# station device scan

利用可能なすべてのネットワークを一覧表示できます:

[iwd]# station device get-networks

最後に、ネットワークに接続するには:

[iwd]# station device connect SSID
ヒント: ユーザーインターフェイスはオートコンプリートをサポートしています。station と入力し、Tab Tab を押すと、使用可能なデバイスが表示され、デバイスの最初の文字を入力し、Tab を押して補完します。 同じように、connect を入力し Tab Tab と押すと、利用可能なネットワークのリストを表示します。次に、使用するネットワークの最初の文字を入力して、Tab キーを押して補完を完了します。

パスフレーズが必要な場合は、入力を求められます。コマンドライン引数として指定することもできます:

$ iwctl --passphrase passphrase station device connect SSID
ノート:
  • iwd はネットワークパスフレーズを /var/lib/iwd ディレクトリに自動的に保存し、将来的にそれらを使用して自動接続します。 #Network configuration を参照してください。
  • SSID にスペースが含まれるネットワークに接続するには、接続時にネットワーク名をダブルクオートで囲む必要があります。
  • iwd は、8〜63 文字の ASCII エンコード文字の PSK パスフレーズのみをサポートします。要件が満たされていない場合は次のエラーメッセージが表示されます: PMK generation failed. Ensure Crypto Engine is properly configured

WPS/WSC を使用してネットワークに接続する

ボタンを押してネットワークに接続できるように設定されている場合 (Wikipedia:ja:Wi-Fi Protected Setup) は、まず、ネットワークデバイスがこのセットアップ手順を使用できることを確認してください。

[iwd]# wsc list

次に、デバイスが上記のリストに表示されている場合、

[iwd]# wsc device push-button

それから、ルーターのボタンを押します。この手順は、2分以内にボタンを事前に押した場合にも機能します。

ネットワークがその方法で接続するために、PIN 番号を検証する必要がある場合は、help コマンド出力をチェックして、wsc コマンドに適切なオプションを提供する方法を確認してください。

ネットワークから切断する

ネットワークから切断するには:

[iwd]# station device disconnect

デバイスと接続情報を表示する

MAC アドレスなどの WiFi デバイスの詳細を表示するには:

[iwd]# device device show

WiFi デバイスの接続ネットワークを含む接続状態を表示するには:

[iwd]# station device show

既知のネットワークの管理

以前に接続したネットワークを一覧表示するには:

[iwd]# known-networks list

既知のネットワークを忘れるには:

[iwd]# known-networks SSID forget

iwgtk

iwgtkAUR は、iwd を制御できる GUI フロントエンドを提供します。

引数を指定せずに iwgtk を実行すると、アプリケーションウィンドウが起動します。このウィンドウを使用して、アダプターとデバイスのオン/オフの切り替え、動作モードの変更、利用可能なネットワークの表示、利用可能なネットワークへの接続、既知のネットワークの管理を行うことができます。

インジケーターアイコン

iwgtk のインジケーター (トレイ) アイコンデーモンを起動するには、次のコマンドを実行します:

$ iwgtk -i

インジケーターアイコンが表示されない場合は、システムトレイで StatusNotifierItem API がサポートされていない可能性が高く、その場合は、snixembed-gitAUR などの互換性レイヤーを実行する必要があります。

次のシステムトレイは StatusNotifierItem をサポートしているため、そのまま使用できます:

  • KDE Plasma
  • swaybar
  • xfce4-panel

次のトレイは XEmbed のみをサポートしているため、snixembed-gitAUR が必要です:

  • AwesomeWM
  • i3bar

自動起動

iwgtk の最も一般的な使用例は、デスクトップにログインするたびにインジケーターデーモンを起動することです。デスクトップ環境が XDG Autostart 標準をサポートしている場合、AUR パッケージによって /etc/xdg/autostart/ に配置されている iwgtk-indicator.desktop ファイルにより自動的に行われます。

あるいは、インジケーターデーモンを起動するための systemd ユニットファイルが AUR パッケージによって提供されます。デスクトップ環境が systemd の graphical-session.target ユニットをサポートしている場合、iwgtk.service ユーザーユニット有効化 することで、systemd 経由で iwgtk を自動起動できます。

ネットワーク設定

デフォルトでは、iwd はネットワーク設定を /var/lib/iwd ディレクトリに保存します。設定ファイルの名前は、network.type となります。network はネットワーク SSID で .type はネットワークタイプ(.open.wep.psk または .8021x)です。このファイルは暗号化された事前共有鍵と、オプションでクリアテキストのパスフレーズを保存するために使用され、ユーザー iwctl を呼び出さずに作成することもできます。このファイルは、そのネットワーク SSID に関連する他の設定にも使用できます。詳細な設定については、iwd.network(5) を参照してください。

WPA-PSK

SSID "spaceship" とパスフレーズ "test1234" を使用して WPA-PSK または WPA2-PSK で保護されたネットワークに接続するための最小限のサンプルファイル:

/var/lib/iwd/spaceship.psk
[Security]
PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295
ノート: ネットワークの SSID は英数字のみまたは - _ のいずれかを含む場合のみファイル名として使用されます。他の文字が含まれている場合、名前は = 文字の後に16進数でエンコードされた SSID が代わりに使用されます。

パスフレーズから事前共有鍵を計算するには、次の二つの方法のいずれかを使用できます:

  • 設定ファイルにクリアテキストでパスフレーズを入力します:
/var/lib/iwd/spaceship.psk
[Security]
Passphrase=test1234

事前共有鍵は、最初の接続時にファイルに追加されます。

/var/lib/iwd/spaceship.psk
[Security]
Passphrase=test1234
PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295

WPA Enterprise

EAP-PWD

EAP-PWD で保護されたエンタープライズアクセスポイントに接続するには /var/lib/iwd フォルダに以下の内容で essid.8021x という名前のファイルを作成する必要があります:

/var/lib/iwd/essid.8021x
[Security]
EAP-Method=PWD
EAP-Identity=your_enterprise_email
EAP-Password=your_password

[Settings]
AutoConnect=true

アクセスポイントに自動接続したくない場合、AutoConnect オプションを false に設定して iwctl で手動でアクセスポイントに接続してください。パスワードを平文で保存したくない場合は、ファイルからパスワードの設定を外してください。

EAP-PEAP

EAP-PWD と同様に、フォルダー内に essid.8021x を作成する必要があります。設定ファイルの作成に進む前に、組織が使用している CA 証明証を確認する良い機会でもあります。これは MSCHAPv2 パスワード認証を使用する設定ファイルの例です:

/var/lib/iwd/essid.8021x
[Security]
EAP-Method=PEAP
EAP-Identity=anonymous@realm.edu
EAP-PEAP-CACert=/path/to/root.crt
EAP-PEAP-ServerDomainMask=radius.realm.edu
EAP-PEAP-Phase2-Method=MSCHAPV2
EAP-PEAP-Phase2-Identity=johndoe@realm.edu
EAP-PEAP-Phase2-Password=hunter2

[Settings]
AutoConnect=true

MsCHAPv2 パスワードは、暗号化されたハッシュとして保存することもできます。正しい md4 ハッシュは次のように計算できます: (パスワードの後に EOF を挿入し、Enter キーを押さないでください)

$ iconv -t utf16le | openssl md4 -provider legacy

結果のハッシュは、EAP-PEAP-Phase2-Password-Hash キー内に保存する必要があります。

ヒント: eduroam の使用を計画している場合は、#Eduroam も参照してください。

TTLS-PAP

EAP-PWD と同様に、フォルダー中に essid.8021x を作成する必要があります。設定ファイルの作成に進む前に、組織が使用している CA 証明書を確認する良い機会でもあります。これは、PAP パスワード認証を使用する設定ファイルの例です:

/var/lib/iwd/essid.8021x
[Security]
EAP-Method=TTLS
EAP-Identity=anonymous@uni-test.de
EAP-TTLS-CACert=cert.pem
EAP-TTLS-ServerDomainMask=*.uni-test.de
EAP-TTLS-Phase2-Method=Tunneled-PAP
EAP-TTLS-Phase2-Identity=user
EAP-TTLS-Phase2-Password=password

[Settings]
AutoConnect=true

Eduroam

Eduroam は 設定アシスタントツール(CAT) を提供していますが、残念ながら iwd には対応していません。しかし、ダウンロードボタンをクリックし、大学を選択してダウンロードできるインストーラは単なる Python スクリプトです。証明書やサーバのドメインマスクなど、必要な設定オプションを簡単に抽出することができます。

以下の表は、iwd の設定オプションと eduroam CAT のインストールスクリプトの変数の対応を示します。

Iwd 設定オプション CAT スクリプト変数
file name Config.ssids の一つ
EAP-Method Config.eap_outer
EAP-Identity Config.anonymous_identity
EAP-PEAP-CACert Config.CA
EAP-PEAP-ServerDomainMask Config.servers の一つ
EAP-PEAP-Phase2-Method Config.eap_inner
EAP-PEAP-Phase2-Identity ユーザー名@Config.user_realm
ノート:
  • EAP-Identity は Eduroam プロバイダによって要求されていない場合があります。その場合は、このフィールドに anonymous@Config.user_realm を使用する必要があります。
  • EAP-PEAP-ServerDomainMaskDNS: で始まる場合は、DNS: 以降の部分のみを使用してください。

その他のケース

その他のテスト例は、上流リポジトリの テストケースにあります。

任意設定

メインの設定は /etc/iwd/main.conf ファイルで行います。 iwd.config(5) を参照してください。

特定のネットワークに対する自動接続を無効化

/var/lib/iwd/network.type ファイルを作成・編集してください (network はネットワークの SSID に、type は "open", "wep", "psk", "8021x" のどれかのネットワークタイプに置き換えてください)。そしてファイルに以下のセクションを追加してください:

/var/lib/iwd/spaceship.psk
[Settings]
AutoConnect=false

利用可能なネットワークの定期スキャンを無効にする

デフォルトでは、 iwd は切断状態の場合、利用可能なネットワークを定期的にスキャンします。定期スキャンを無効にする(常に手動でスキャンする)には、/etc/iwd/main.conf ファイルを作成/編集し、以下のセクションを追加します:

/etc/iwd/main.conf
[Scan]
DisablePeriodicScan=true

内蔵ネットワーク設定の有効化

バージョン 0.19 以降、iwd は内蔵の DHCP クライアントまたは静的な設定を使用して、IPアドレスの割り当てとルートの設定を行うことができます。これは、スタンドアロン DHCP クライアントの良い代替手段です。

iwd のネットワーク設定機能を有効にするには、//etc/iwd/main.conf を作成・編集し、以下のセクションを追加します:

/etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true

また、RoutePriorityOffset でルートメトリックを設定する機能もあります:

/etc/iwd/main.conf
[Network]
RoutePriorityOffset=300

IPv6 support

バージョン 1.10 以降、iwd は IPv6 をサポートしていますが、デフォルトでは無効になっています。IPv6 を有効にするには、設定ファイルに以下を追加します:

/etc/iwd/main.conf
[Network]
EnableIPv6=true

この設定は、DHCPv6 または 静的 IPv6 設定のどちらを使用する場合でも必要です。ネットワーク毎に設定することもできます。

ネットワーク構成での静的 IP アドレスの設定

次のセクションを /var/lib/iwd/network.type ファイルに追加します。例えば:

/var/lib/iwd/spaceship.psk
[IPv4]
Address=192.168.1.10
Netmask=255.255.255.0
Gateway=192.168.1.1
Broadcast=192.168.1.255
DNS=192.168.1.1

DNS マネージャーの選択

現在、iwd は systemd-resolvedresolvconf の二つの DNS マネージャーをサポートしています。

systemd-resolved の場合、次のセクションを /etc/iwd/main.conf に追加します:

/etc/iwd/main.conf
[Network]
NameResolvingService=systemd

resolvconf の場合:

/etc/iwd/main.conf
[Network]
NameResolvingService=resolvconf

すべてのユーザーにステータス情報の読み取りを許可する

すべてのユーザーにステータス情報の読み取りを許可するが、設定の変更は許可しない場合は、次の D-Bus 設定ファイルを作成できます。

/etc/dbus-1/system.d/iwd-allow-read.conf
<!-- Allow any user to read iwd status information. Overrides some part
     of /usr/share/dbus-1/system.d/iwd-dbus.conf. -->

<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>

  <policy context="default">
    <deny send_destination="net.connman.iwd"/>
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="GetAll" />
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="Get" />
    <allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.ObjectManager" send_member="GetManagedObjects" />
    <allow send_destination="net.connman.iwd" send_interface="net.connman.iwd.Device" send_member="RegisterSignalLevelAgent" />
    <allow send_destination="net.connman.iwd" send_interface="net.connman.iwd.Device" send_member="UnregisterSignalLevelAgent" />
  </policy>

</busconfig>

暗号化されたネットワークプロファイル

デフォルトでは、iwd はネットワーク資格情報を暗号化せずにシステムに保存します。iwd バージョン 1.25 以降、iwd は、systemd を使用するシステム向けに 暗号化プロファイル を作成するための実験的なサポートを提供します。

まず、暗号化された認証情報を作成します。次の例では、systemd-creds を使用し、暗号化されたプロファイルの作成に使用されるシステムの Trusted Platform Module にバインドされる iwd-secret という暗号化された資格情報を作成します:

# systemd-ask-password -n | systemd-creds --tpm2-device=auto -T --name=iwd-secret encrypt - /etc/credstore.encrypted/iwd-secret.cred

次に、iwd サービスの ドロップインファイル を作成して、LoadEncryptedCredential オプションを追加します。

/etc/systemd/system/iwd.service.d/use-creds.conf
[Service]
LoadEncryptedCredential=iwd-secret:/etc/credstore.encrypted/iwd-secret.cred

最後に、名前付き資格情報を値として持つ SystemdEncrypt オプションを iwd 設定ファイルに追加し、systemd マネージャーを リロード して、iwd サービスを 再起動 します。

/etc/iwd/main.conf
[General]
...
SystemdEncrypt=iwd-secret
ノート:
  • 現在システム上にあるプロファイルはすべて自動的に暗号化されます。この時点では他に何も必要ありません。今後のプロファイルは自動的に暗号化されます。
  • 上の例では、暗号化された資格情報は TPM PCR 7 に暗黙的にバインドされています。したがって、セキュアブートの状態が変化すると、そのブートセッションではネットワークに接続できなくなります。

トラブルシューティング

詳細な TLS デバッグ

これは、MSCHAPv2 または TTLS の設定に問題がある場合に役立ちます。 ドロップインスニペット を使用して、次の環境変数を設定できます。

/etc/systemd/system/iwd.service.d/tls-debug.conf
[Service]
Environment=IWD_TLS_DEBUG=TRUE

その後、root で journalctbl -u iwd.service を実行して、iwd ログを確認します。

起動後の iwd.service の再起動

一部のマシンでは、起動後に動作するために iwd.service を再起動する必要があると報告されています。FS#63912thread 251432 を参照してください。これはおそらく、Linux カーネルとサービスの起動が早すぎて、ワイヤレスネットワークカードの電源がオンになる前に、iwd が起動するために発生します。回避策として、ユニットを拡張して、遅延時間を追加します。

[Service]
ExecStartPre=/usr/bin/sleep 2

次に systemd マネージャーの設定をリロードします。

再起動後の接続の問題

エントロピープールが低いと、特に再起動後に顕著な接続の問題が発生する可能性があります。エントロピープールを増やすための提案については、乱数生成 を参照してください。

ワイヤレスデバイスが udev によって名前が変更されない

バージョン 1.0 以降、iwd は無線デバイスの予測可能な名前変更を無効にします。これは以下の systemd ネットワークリンク設定ファイルをインストールすることで、 udev がインターフェースの名前を wlp#s# に変更するのを防ぎます。

/usr/lib/systemd/network/80-iwd.link
[Match]
Type=wlan

[Link]
NamePolicy=keep kernel

その結果、ワイヤレスリンク名 wlan# は起動後も保持されます。これにより、iwd udev インターフェイス名前変更で説明されているように、インターフェイスの名前変更に関する iwdudev 間の競合状態を解決しました。

もし、これが問題になるなら、次のコマンドでマスクしてみてください。

# ln -s /dev/null /etc/systemd/network/80-iwd.link

AP モードで DHCP が使えない

AP モードで iwd に接続する場合、クライアントは DHCP で IP アドレスを受け取れない場合があります。そのため、管理対象のインターフェイス上で、 iwd によるネットワーク設定を有効にする必要があります。

/etc/iwd/main.conf
[General]
EnableNetworkConfiguration=True

上記のファイルが存在しない場合は、作成する必要があります。

iwd のクラッシュにより WiFi が切断され続ける

ジャーナルiwd.service のクラッシュ ([1]) を報告しています。

中心的な問題は、ネットワーク接続を管理するために複数の競合するサービスがあることです。この問題を解決するには、それらを同時に 有効 にしていないことを確認してください。

Error loading client private key

キーファイルをロードするには、iwd には pkcs8_key_parser カーネルモジュール が必要です。起動時に /usr/lib/modules-load.d/pkcs8.conf を使用して systemd-modules-load.service(8) によってロードされますが、iwd がインストールされたばかりの場合は当てはまりません。

WPA エンタープライズネットワークに接続しようとしたときに、Error loading client private key /path/to/key などのメッセージが ジャーナル に表示される場合は、モジュールを手動でロードします:

# modprobe pkcs8_key_parser

iwd がローミングを続ける

接続が悪すぎる場合、iwd は他の既知の AP にローミングします。

これはシステムログに wlan0: deauthenticating from xx:xx:xx:xx:xx:xx by local Choice (Reason: 3=DEAUTH_LEAVING) として表示されます。

接続信号の強度を確認するには、

iwctl station wlan0 show | grep RSSI

しきい値を大きくして、接続を悪化させることができます。デフォルトの RoamThreshold は -70、RoamThreshold5G は -76 です。

/etc/iwd/main.conf
[General]
RoamThreshold=-75
RoamThreshold5G=-80

参照

翻訳ステータス: このページは en:iwd の翻訳バージョンです。最後の翻訳日は 2023-12-07 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。