「Iwd」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→IPv6 support: 英語版より訳出) |
(→EAP-PEAP: Hashの生成コマンドを更新) |
||
(4人の利用者による、間の46版が非表示) | |||
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| |
+ | {{Related|wpa_supplicant}} |
{{Related articles end}} |
{{Related articles end}} |
||
− | [https://iwd.wiki.kernel.org/ |
+ | [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}} が含まれています。 |
||
− | + | {{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}}}} |
使用可能なすべてのコマンドの一覧を表示するには: |
使用可能なすべてのコマンドの一覧を表示するには: |
||
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= |
+ | AutoConnect=true |
}} |
}} |
||
− | アクセスポイントに自動接続したくない場合、 |
+ | アクセスポイントに自動接続したくない場合、AutoConnect オプションを false に設定して {{ic|iwctl}} で手動でアクセスポイントに接続してください。パスワードを平文で保存したくない場合は、ファイルからパスワードの設定を外してください。 |
==== EAP-PEAP ==== |
==== EAP-PEAP ==== |
||
− | EAP-PWD と同様に、フォルダー内に {{ic|''essid''.8021x}} を作成する必要があります。設定ファイルの作成に |
+ | 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 |
+ | ! Iwd 設定オプション !! CAT スクリプト変数 |
|- |
|- |
||
− | | file name || |
+ | | 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}} || |
+ | | {{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}} || |
+ | | {{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. |
||
− | * |
+ | * {{ic|EAP-PEAP-ServerDomainMask}} が {{ic|DNS:}} で始まる場合は、{{ic|DNS:}} 以降の部分のみを使用してください。 |
}} |
}} |
||
− | ==== |
+ | ==== その他のケース ==== |
− | + | その他のテスト例は、上流リポジトリの [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 |
|
</nowiki>}} |
</nowiki>}} |
||
+ | === 利用可能なネットワークの定期スキャンを無効にする === |
||
− | === Disable periodic scan for available networks === |
||
+ | デフォルトでは、 {{ic|iwd}} は切断状態の場合、利用可能なネットワークを定期的にスキャンします。定期スキャンを無効にする(常に手動でスキャンする)には、{{ic|/etc/iwd/main.conf}} ファイルを作成/編集し、以下のセクションを追加します: |
||
− | By default when {{ic|iwd}} is in disconnected state, it periodically scans for available networks. To disable periodic scan (so as to always scan manually), create / edit file {{ic|/etc/iwd/main.conf}} and add the following section to it: |
||
{{hc|/etc/iwd/main.conf|2= |
{{hc|/etc/iwd/main.conf|2= |
||
250行目: | 292行目: | ||
}} |
}} |
||
+ | === 内蔵ネットワーク設定の有効化 === |
||
− | === Enable built-in network configuration === |
||
+ | バージョン 0.19 以降、iwd は内蔵の DHCP クライアントまたは静的な設定を使用して、IPアドレスの割り当てとルートの設定を行うことができます。これは、[[ネットワーク設定#DHCP|スタンドアロン DHCP クライアント]]の良い代替手段です。 |
||
− | Since version 0.19, iwd can assign IP address(es) and set up routes using a built-in DHCP client or with static configuration. It is a good alternative to [[Network configuration#DHCP|standalone DHCP clients]]. |
||
+ | iwd のネットワーク設定機能を有効にするには、/{{ic|/etc/iwd/main.conf}} を作成・編集し、以下のセクションを追加します: |
||
− | To activate iwd's network configuration feature, create/edit {{ic|/etc/iwd/main.conf}} and add the following section to it: |
||
{{hc|/etc/iwd/main.conf|2= |
{{hc|/etc/iwd/main.conf|2= |
||
261行目: | 303行目: | ||
}} |
}} |
||
+ | また、{{ic|RoutePriorityOffset}} でルートメトリックを設定する機能もあります: |
||
− | There is also ability to set route metric with {{ic|RoutePriorityOffset}}: |
||
− | |||
{{hc|/etc/iwd/main.conf|2= |
{{hc|/etc/iwd/main.conf|2= |
||
[Network] |
[Network] |
||
279行目: | 320行目: | ||
この設定は、DHCPv6 または 静的 IPv6 設定のどちらを使用する場合でも必要です。ネットワーク毎に設定することもできます。 |
この設定は、DHCPv6 または 静的 IPv6 設定のどちらを使用する場合でも必要です。ネットワーク毎に設定することもできます。 |
||
+ | ==== ネットワーク構成での静的 IP アドレスの設定 ==== |
||
− | ==== Setting static IP address in network configuration ==== |
||
− | + | 次のセクションを {{ic|/var/lib/iwd/''network''.''type''}} ファイルに追加します。例えば: |
|
{{hc|/var/lib/iwd/spaceship.psk|2= |
{{hc|/var/lib/iwd/spaceship.psk|2= |
||
292行目: | 333行目: | ||
}} |
}} |
||
− | ==== |
+ | ==== DNS マネージャーの選択 ==== |
− | + | 現在、iwd は [[systemd-resolved]] と [[Openresolv|resolvconf]] の二つの DNS マネージャーをサポートしています。 |
|
− | + | {{ic|systemd-resolved}} の場合、次のセクションを {{ic|/etc/iwd/main.conf}} に追加します: |
|
{{hc|/etc/iwd/main.conf|2= |
{{hc|/etc/iwd/main.conf|2= |
||
303行目: | 344行目: | ||
}} |
}} |
||
− | + | {{ic|resolvconf}} の場合: |
|
{{hc|/etc/iwd/main.conf|2= |
{{hc|/etc/iwd/main.conf|2= |
||
310行目: | 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 |
||
− | |||
− | + | 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" |
||
328行目: | 363行目: | ||
<busconfig> |
<busconfig> |
||
− | <policy |
+ | <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" /> |
||
340行目: | 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] |
||
353行目: | 414行目: | ||
}} |
}} |
||
+ | その後、root で {{ic|journalctbl -u iwd.service}} を実行して、iwd ログを確認します。 |
||
− | Check the iwd logs afterwards via {{ic|journalctl -u iwd.service}} |
||
− | === |
+ | === 起動後の 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= |
||
371行目: | 441行目: | ||
}} |
}} |
||
− | + | その結果、ワイヤレスリンク名 {{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}} |
||
== 参照 == |
== 参照 == |
||
* [https://iwd.wiki.kernel.org/gettingstarted Getting Started with iwd] |
* [https://iwd.wiki.kernel.org/gettingstarted Getting Started with iwd] |
||
− | * [https:// |
+ | * [https://iwd.wiki.kernel.org/networkconfigurationsettings Network Configuration Settings] |
+ | * [https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/autotests More Examples for WPA Enterprise] |
||
+ | * [https://bbs.archlinux.org/viewtopic.php?id=237074 The IWD thread on the Arch Linux Forums] |
||
+ | * [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://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 はスタンドアロンでも動作しますが ConnMan、systemd-networkd や NetworkManager のような包括的なネットワークマネージャーとの組み合わせて使うこともできます。
インストール
使用方法
iwd パッケージにはクライアントプログラムの iwctl
とデーモンの iwd
、そして Wi-Fi 監視ツールの iwmon
が含まれています。
iwd.service
を起動・有効化)したら、iwctl
コマンドを使って制御することができます。
iwctl
対話型プロンプトを表示するには、次のようにします:
$ iwctl
対話型プロンプトは、プレフィックスが、[iwd]#
と表示されます。
使用可能なすべてのコマンドの一覧を表示するには:
[iwd]# help
ネットワークに接続する
先ず、ワイヤレスデバイス名がわからない場合は、すべての Wi-Fiデバイスを一覧表示します:
[iwd]# device list
次に、ネットワークをスキャンします:
[iwd]# station device scan
利用可能なすべてのネットワークを一覧表示できます:
[iwd]# station device get-networks
最後に、ネットワークに接続するには:
[iwd]# station device connect SSID
パスフレーズが必要な場合は、入力を求められます。コマンドライン引数として指定することもできます:
$ iwctl --passphrase passphrase station device connect SSID
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
パスフレーズから事前共有鍵を計算するには、次の二つの方法のいずれかを使用できます:
- 設定ファイルにクリアテキストでパスフレーズを入力します:
/var/lib/iwd/spaceship.psk
[Security] Passphrase=test1234
事前共有鍵は、最初の接続時にファイルに追加されます。
/var/lib/iwd/spaceship.psk
[Security] Passphrase=test1234 PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295
- もしくは、事前共有鍵は、wpa_passphrase (wpa_supplicant から) または wpa-pskAUR を使用して、SSID とパスフレーズから計算できます。詳細については wpa_supplicant#wpa_passphrase で接続する を参照してください。
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
キー内に保存する必要があります。
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
|
その他のケース
その他のテスト例は、上流リポジトリの テストケースにあります。
任意設定
メインの設定は /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-resolved と resolvconf の二つの 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
トラブルシューティング
詳細な 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#63912 と thread 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 インターフェイス名前変更で説明されているように、インターフェイスの名前変更に関する iwd と udev 間の競合状態を解決しました。
もし、これが問題になるなら、次のコマンドでマスクしてみてください。
# 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
参照
- Getting Started with iwd
- Network Configuration Settings
- More Examples for WPA Enterprise
- The IWD thread on the Arch Linux Forums
- 2017 Update on new WiFi daemon for Linux by Marcel Holtmann - YouTube
- The New Wi-Fi Experience for Linux - Marcel Holtmann, Intel - YouTube
- How to set up a simple access point with iwd